669 lines
32 KiB
C#
669 lines
32 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Data;
|
|||
|
|
using System.Data.OleDb;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Data.SqlClient;
|
|||
|
|
using System.Globalization;
|
|||
|
|
using System.Xml;
|
|||
|
|
using DTS.Common.Enums.DBExport;
|
|||
|
|
using DTS.Common.Storage;
|
|||
|
|
using DTS.Common.Utilities.Logging;
|
|||
|
|
|
|||
|
|
namespace DTS.Common.ISO
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// this is a "possible" channel, once we know what iso object we are dealing with there can be a number of channels
|
|||
|
|
/// defined for the object. We might not care about all of them ...
|
|||
|
|
/// this is also a template channel, in that some fields will not be known yet (direction, dimension maybe, position, etc)
|
|||
|
|
/// TestObjectChannel will consume this channel and then allow setting the locations as needed
|
|||
|
|
/// </summary>
|
|||
|
|
public class MMEPossibleChannels : AbstractOLEDbWrapper
|
|||
|
|
{
|
|||
|
|
public long Id { get; set; }
|
|||
|
|
|
|||
|
|
public void ClearId() { Id = -1; }
|
|||
|
|
public void SetId(long id) { Id = id; }
|
|||
|
|
|
|||
|
|
public string Type { get; private set; }
|
|||
|
|
public void SetType(string type) { Type = type; }
|
|||
|
|
|
|||
|
|
public string Test_Object { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Test_Object(string val)
|
|||
|
|
{
|
|||
|
|
Test_Object = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Position { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Position(string val)
|
|||
|
|
{
|
|||
|
|
Position = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Trans_Main_Loc { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Main_Loc(string val)
|
|||
|
|
{
|
|||
|
|
Trans_Main_Loc = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Fine_Loc_1 { get; private set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Sets the fine location 1
|
|||
|
|
/// the property doesn't seem to have a set
|
|||
|
|
/// so not sure if it was omitted or on purpose
|
|||
|
|
/// See all othe "Set_*" functions
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="val"></param>
|
|||
|
|
public void Set_Fine_Loc_1(string val)
|
|||
|
|
{
|
|||
|
|
Fine_Loc_1 = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public string Fine_Loc_2 { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Fine_Loc_2(string val)
|
|||
|
|
{
|
|||
|
|
Fine_Loc_2 = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Fine_Loc_3 { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Fine_Loc_3(string val)
|
|||
|
|
{
|
|||
|
|
Fine_Loc_3 = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Physical_Dimension { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Physical_Dimension(string val)
|
|||
|
|
{
|
|||
|
|
Physical_Dimension = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Direction { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Direction(string val)
|
|||
|
|
{
|
|||
|
|
Direction = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Default_Filter_Class { get; private set; }
|
|||
|
|
|
|||
|
|
public void Set_Default_Filter_Class(string val)
|
|||
|
|
{
|
|||
|
|
Default_Filter_Class = val;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Text_L1 { get; private set; }
|
|||
|
|
public void SetText1(string text1) { Text_L1 = text1; }
|
|||
|
|
|
|||
|
|
public string Text_L2 { get; private set; }
|
|||
|
|
public void SetText2(string text2) { Text_L2 = text2; }
|
|||
|
|
|
|||
|
|
public long Version { get; }
|
|||
|
|
|
|||
|
|
public DateTime Date { get; }
|
|||
|
|
|
|||
|
|
public string Remarks { get; private set; }
|
|||
|
|
public void SetRemarks(string remarks) { Remarks = remarks; }
|
|||
|
|
|
|||
|
|
public bool Expired { get; }
|
|||
|
|
|
|||
|
|
public string SortKey { get; }
|
|||
|
|
|
|||
|
|
public string Picture_ShortName { get; }
|
|||
|
|
|
|||
|
|
public DateTime Last_Change { get; }
|
|||
|
|
|
|||
|
|
public string Last_Change_Text { get; }
|
|||
|
|
|
|||
|
|
public string History { get; }
|
|||
|
|
|
|||
|
|
public int MMEChannelType { get; }
|
|||
|
|
|
|||
|
|
public MMEPossibleChannels(MMEPossibleChannels copy)
|
|||
|
|
{
|
|||
|
|
Id = copy.Id;
|
|||
|
|
Type = copy.Type;
|
|||
|
|
Test_Object = copy.Test_Object;
|
|||
|
|
Position = copy.Position;
|
|||
|
|
Trans_Main_Loc = copy.Trans_Main_Loc;
|
|||
|
|
Fine_Loc_1 = copy.Fine_Loc_1;
|
|||
|
|
Fine_Loc_2 = copy.Fine_Loc_2;
|
|||
|
|
Fine_Loc_3 = copy.Fine_Loc_3;
|
|||
|
|
Physical_Dimension = copy.Physical_Dimension;
|
|||
|
|
Direction = copy.Direction;
|
|||
|
|
Default_Filter_Class = copy.Default_Filter_Class;
|
|||
|
|
Text_L1 = copy.Text_L1;
|
|||
|
|
Text_L2 = copy.Text_L2;
|
|||
|
|
Version = copy.Version;
|
|||
|
|
Date = copy.Date;
|
|||
|
|
Remarks = copy.Remarks;
|
|||
|
|
Expired = copy.Expired;
|
|||
|
|
SortKey = copy.SortKey;
|
|||
|
|
Picture_ShortName = copy.Picture_ShortName;
|
|||
|
|
Last_Change = copy.Last_Change;
|
|||
|
|
Last_Change_Text = copy.Last_Change_Text;
|
|||
|
|
History = copy.History;
|
|||
|
|
MMEChannelType = copy.MMEChannelType;
|
|||
|
|
}
|
|||
|
|
public MMEPossibleChannels(long id, string type, string textObject, string position, string transMainLoc,
|
|||
|
|
string fineLoc1, string fineLoc2, string fineLoc3, string physicalDimension, string direction, string defaultFilterClass,
|
|||
|
|
string textL1, string textL2, long version, DateTime date, string remarks, bool expired, string sortkey,
|
|||
|
|
string pictureShortName, DateTime lastChange, string lastChangeText, string history, int mmeChannelType)
|
|||
|
|
{
|
|||
|
|
Id = id;
|
|||
|
|
Type = type;
|
|||
|
|
Test_Object = textObject;
|
|||
|
|
Position = position;
|
|||
|
|
Trans_Main_Loc = transMainLoc;
|
|||
|
|
Fine_Loc_1 = fineLoc1;
|
|||
|
|
Fine_Loc_2 = fineLoc2;
|
|||
|
|
Fine_Loc_3 = fineLoc3;
|
|||
|
|
Physical_Dimension = physicalDimension;
|
|||
|
|
Direction = direction;
|
|||
|
|
Default_Filter_Class = defaultFilterClass;
|
|||
|
|
Text_L1 = textL1;
|
|||
|
|
Text_L2 = textL2;
|
|||
|
|
Version = version;
|
|||
|
|
Date = date;
|
|||
|
|
Remarks = remarks;
|
|||
|
|
Expired = expired;
|
|||
|
|
SortKey = sortkey;
|
|||
|
|
Picture_ShortName = pictureShortName;
|
|||
|
|
Last_Change = lastChange;
|
|||
|
|
Last_Change_Text = lastChangeText;
|
|||
|
|
History = history;
|
|||
|
|
MMEChannelType = mmeChannelType;
|
|||
|
|
}
|
|||
|
|
public enum MMEChannelTypes
|
|||
|
|
{
|
|||
|
|
ISO13499_106,
|
|||
|
|
SQL
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static MMEPossibleChannels[] GetPossibleChannels()
|
|||
|
|
{
|
|||
|
|
var possibleChannels = new List<MMEPossibleChannels>();
|
|||
|
|
|
|||
|
|
using (var cmd = DbOperations.GetISOCommand())
|
|||
|
|
{
|
|||
|
|
cmd.CommandText = "SELECT * FROM MMEPossibleChannels";
|
|||
|
|
cmd.CommandType = CommandType.Text;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
using (var ISOReader = cmd.ExecuteReader())
|
|||
|
|
{
|
|||
|
|
while (ISOReader.Read())
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
long id = GetLong(ISOReader, "ID");
|
|||
|
|
string type = ISOReader["TYPE"].ToString();
|
|||
|
|
string testObject = ISOReader["TEST_OBJECT"].ToString();
|
|||
|
|
string position = ISOReader["POSITION"].ToString();
|
|||
|
|
string transMainLoc = ISOReader["TRANS_MAIN_LOC"].ToString();
|
|||
|
|
string fineLoc1 = ISOReader["FINE_LOC_1"].ToString();
|
|||
|
|
string fineLoc2 = ISOReader["FINE_LOC_2"].ToString();
|
|||
|
|
string fineLoc3 = ISOReader["FINE_LOC_3"].ToString();
|
|||
|
|
string physicalDimension = ISOReader["PHYSICAL_DIMENSION"].ToString();
|
|||
|
|
string direction = ISOReader["DIRECTION"].ToString();
|
|||
|
|
string defaultFilterClass = ISOReader["DEFAULT_FILTER_CLASS"].ToString();
|
|||
|
|
string textL1 = ISOReader["TEXT_L1"].ToString();
|
|||
|
|
string textL2 = ISOReader["TEXT_L2"].ToString();
|
|||
|
|
long version = GetLong(ISOReader, "VERSION");
|
|||
|
|
DateTime date = GetDate(ISOReader, "DATE");
|
|||
|
|
string remarks = ISOReader["REMARKS"].ToString();
|
|||
|
|
bool expired = (bool)ISOReader["EXPIRED"];
|
|||
|
|
string sortkey = ISOReader["SORTKEY"].ToString();
|
|||
|
|
string pictureShortName = ISOReader["PICTURE_SHORTNAME"].ToString();
|
|||
|
|
DateTime lastChange = GetDate(ISOReader, "LAST_CHANGE");
|
|||
|
|
string lastChangeText = ISOReader["LAST_CHANGE_TEXT"].ToString();
|
|||
|
|
string history = ISOReader["HISTORY"].ToString();
|
|||
|
|
|
|||
|
|
possibleChannels.Add(new MMEPossibleChannels(id, type, testObject, position,
|
|||
|
|
transMainLoc, fineLoc1, fineLoc2,
|
|||
|
|
fineLoc3, physicalDimension, direction, defaultFilterClass, textL1, textL2,
|
|||
|
|
version, date, remarks, expired, sortkey, pictureShortName, lastChange,
|
|||
|
|
lastChangeText, history, (int)MMEChannelTypes.ISO13499_106));
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
APILogger.Log("Failed to process possible channels", ex);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return possibleChannels.ToArray();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// reads/parses out a CustomChannel from XML
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="root"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static MMEPossibleChannels ReadXML(XmlElement root)
|
|||
|
|
{
|
|||
|
|
long id = -1;
|
|||
|
|
var type = "";
|
|||
|
|
var testobject = "";
|
|||
|
|
var position = "";
|
|||
|
|
var date = DateTime.Now;
|
|||
|
|
var filterclass = "";
|
|||
|
|
var expired = false;
|
|||
|
|
var direction = "";
|
|||
|
|
var fineloc1 = "";
|
|||
|
|
var fineloc2 = "";
|
|||
|
|
var fineloc3 = "";
|
|||
|
|
var history = "";
|
|||
|
|
var lastChange = DateTime.Now;
|
|||
|
|
var lastChangeText = "";
|
|||
|
|
var dimension = "";
|
|||
|
|
var pictureShortName = "";
|
|||
|
|
var remarks = "";
|
|||
|
|
var sortkey = "";
|
|||
|
|
var text1 = "";
|
|||
|
|
var text2 = "";
|
|||
|
|
var transMainLoc = "";
|
|||
|
|
var version = 0;
|
|||
|
|
|
|||
|
|
foreach (var child in root.ChildNodes)
|
|||
|
|
{
|
|||
|
|
if (!(child is XmlElement)) continue;
|
|||
|
|
var element = child as XmlElement;
|
|||
|
|
|
|||
|
|
if (Enum.TryParse(element.Name, out DbOperations.MMETables.MMEPossibleChannelsFields field))
|
|||
|
|
{
|
|||
|
|
switch (field)
|
|||
|
|
{
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.ID:
|
|||
|
|
id = long.Parse(element.InnerText, CultureInfo.InvariantCulture);
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.DATE:
|
|||
|
|
date = DateTime.Parse(element.InnerText, CultureInfo.InvariantCulture);
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.DEFAULT_FILTER_CLASS:
|
|||
|
|
filterclass = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.DIRECTION:
|
|||
|
|
direction = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.EXPIRED:
|
|||
|
|
expired = Convert.ToBoolean(element.InnerText);
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.FINE_LOC_1:
|
|||
|
|
fineloc1 = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.FINE_LOC_2:
|
|||
|
|
fineloc2 = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.FINE_LOC_3:
|
|||
|
|
fineloc3 = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.HISTORY:
|
|||
|
|
history = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.LAST_CHANGE:
|
|||
|
|
lastChange = DateTime.Parse(element.InnerText, CultureInfo.InvariantCulture);
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.LAST_CHANGE_TEXT:
|
|||
|
|
lastChangeText = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.TYPE:
|
|||
|
|
type = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.PHYSICAL_DIMENSION:
|
|||
|
|
dimension = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.PICTURE_SHORTNAME:
|
|||
|
|
pictureShortName = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.POSITION:
|
|||
|
|
position = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.REMARKS:
|
|||
|
|
remarks = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.SORTKEY:
|
|||
|
|
sortkey = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.TEST_OBJECT:
|
|||
|
|
testobject = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.TEXT_L1:
|
|||
|
|
text1 = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.TEXT_L2:
|
|||
|
|
text2 = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.TRANS_MAIN_LOC:
|
|||
|
|
transMainLoc = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
case DbOperations.MMETables.MMEPossibleChannelsFields.VERSION:
|
|||
|
|
version = Convert.ToInt32(element.InnerText, CultureInfo.InvariantCulture);
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
throw new NotSupportedException(
|
|||
|
|
"CustomChannel::ProcessXMLElement field in enum not handled: " + field);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//This is a field that was exported in an earlier version of DataPRO, so stay backward compatible
|
|||
|
|
switch (element.Name)
|
|||
|
|
{
|
|||
|
|
//These have been replaced by TYPE
|
|||
|
|
case DbOperations.MMETables.MyType: //This was exported in all versions up to 1.3.496
|
|||
|
|
case DbOperations.MMETables.CustomChannelType
|
|||
|
|
: //This was exported in versions from 1.3.498 - 1.3.515
|
|||
|
|
type = element.InnerText;
|
|||
|
|
break;
|
|||
|
|
//This has been replaced by ID
|
|||
|
|
case DbOperations.MMETables.Id: //This was exported in all versions up to 1.3.515
|
|||
|
|
id = long.Parse(element.InnerText, CultureInfo.InvariantCulture);
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
throw new NotSupportedException(
|
|||
|
|
"CustomChannel::ProcessXMLElement field not in enum and unknown: " + field);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
return new MMEPossibleChannels(id, type, testobject, position, transMainLoc, fineloc1, fineloc2,
|
|||
|
|
fineloc3, dimension, direction, filterclass, text1, text2, version, date, remarks, expired, sortkey,
|
|||
|
|
pictureShortName, lastChange, lastChangeText, history, (int)MMEPossibleChannels.MMEChannelTypes.SQL);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void Commit()
|
|||
|
|
{
|
|||
|
|
if (-1 == Id) { CreateNewMMEChannel(); }
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
UpdateAll();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public static void Commit(MMEPossibleChannels[] channels)
|
|||
|
|
{
|
|||
|
|
foreach (var channel in channels)
|
|||
|
|
{
|
|||
|
|
using (var cmd = DbOperations.GetSQLCommand(true))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|||
|
|
cmd.CommandText =
|
|||
|
|
DbOperationsEnum.StoredProcedure.sp_MMEPossibleChannelsUpdateInsert.ToString();
|
|||
|
|
|
|||
|
|
#region params
|
|||
|
|
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.BigInt) { Value = 0 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TYPE", SqlDbType.NVarChar, 50) { Value = channel.Type });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@TEST_OBJECT", SqlDbType.NVarChar, 50) { Value = channel.Test_Object });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@POSITION", SqlDbType.NVarChar, 50) { Value = channel.Position });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@TRANS_MAIN_LOC", SqlDbType.NVarChar, 50)
|
|||
|
|
{
|
|||
|
|
Value = channel.Trans_Main_Loc
|
|||
|
|
});
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@FINE_LOC_1", SqlDbType.NVarChar, 50) { Value = channel.Fine_Loc_1 });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@FINE_LOC_2", SqlDbType.NVarChar, 50) { Value = channel.Fine_Loc_2 });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@FINE_LOC_3", SqlDbType.NVarChar, 50) { Value = channel.Fine_Loc_3 });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@PHYSICAL_DIMENSION", SqlDbType.NVarChar, 50)
|
|||
|
|
{
|
|||
|
|
Value = channel.Physical_Dimension
|
|||
|
|
});
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@DIRECTION", SqlDbType.NVarChar, 50) { Value = channel.Direction });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@DEFAULT_FILTER_CLASS", SqlDbType.NVarChar, 50)
|
|||
|
|
{
|
|||
|
|
Value = channel.Default_Filter_Class
|
|||
|
|
});
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@TEXT_L1", SqlDbType.NVarChar, 100) { Value = channel.Text_L1 });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@TEXT_L2", SqlDbType.NVarChar, 100) { Value = channel.Text_L2 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@VERSION", SqlDbType.Int) { Value = channel.Version });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@DATE", SqlDbType.DateTime) { Value = channel.Date });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@REMARKS", SqlDbType.NVarChar, 50) { Value = channel.Remarks });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@EXPIRED", SqlDbType.Bit) { Value = channel.Expired });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@SORTKEY", SqlDbType.NVarChar, 50) { Value = channel.SortKey });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@PICTURE_SHORTNAME", SqlDbType.NVarChar, 50)
|
|||
|
|
{
|
|||
|
|
Value = channel.Picture_ShortName
|
|||
|
|
});
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@LAST_CHANGE", SqlDbType.DateTime) { Value = DateTime.Now });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@LAST_CHANGE_TEXT", SqlDbType.NVarChar, 50) { Value = "Created" });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@HISTORY", SqlDbType.NVarChar, 50) { Value = channel.History });
|
|||
|
|
var newIdParam =
|
|||
|
|
new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
|
|||
|
|
cmd.Parameters.Add(newIdParam);
|
|||
|
|
var errorNumberParam =
|
|||
|
|
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
|
|||
|
|
cmd.Parameters.Add(errorNumberParam);
|
|||
|
|
var errorMessageParam =
|
|||
|
|
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
|
|||
|
|
{
|
|||
|
|
Direction = ParameterDirection.Output
|
|||
|
|
};
|
|||
|
|
cmd.Parameters.Add(errorMessageParam);
|
|||
|
|
|
|||
|
|
#endregion params
|
|||
|
|
|
|||
|
|
cmd.ExecuteNonQuery();
|
|||
|
|
if (int.Parse(errorNumberParam.Value.ToString()) != 0)
|
|||
|
|
{
|
|||
|
|
//errorMessageParam.Value
|
|||
|
|
}
|
|||
|
|
var id = int.Parse(newIdParam.Value.ToString());
|
|||
|
|
channel.Id = id == 0 ? channel.Id : id;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public void Insert()
|
|||
|
|
{
|
|||
|
|
CreateNewMMEChannel();
|
|||
|
|
}
|
|||
|
|
public void Delete()
|
|||
|
|
{
|
|||
|
|
using (var cmd = DbOperations.GetSQLCommand(true))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|||
|
|
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_MMEPossibleChannelsDelete.ToString();
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.BigInt) { Value = Id });
|
|||
|
|
var errorNumberParam =
|
|||
|
|
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
|
|||
|
|
cmd.Parameters.Add(errorNumberParam);
|
|||
|
|
var errorMessageParam =
|
|||
|
|
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
|
|||
|
|
{
|
|||
|
|
Direction = ParameterDirection.Output
|
|||
|
|
};
|
|||
|
|
cmd.Parameters.Add(errorMessageParam);
|
|||
|
|
|
|||
|
|
cmd.ExecuteNonQuery();
|
|||
|
|
if (int.Parse(errorNumberParam.Value.ToString()) != 0)
|
|||
|
|
{
|
|||
|
|
//errorMessageParam.Value
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
private void UpdateAll()
|
|||
|
|
{
|
|||
|
|
using (var cmd = DbOperations.GetSQLCommand(true))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|||
|
|
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_MMEPossibleChannelsUpdate.ToString();
|
|||
|
|
|
|||
|
|
#region params
|
|||
|
|
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.BigInt) { Value = Id });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TYPE", SqlDbType.NVarChar, 50) { Value = Type });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TEST_OBJECT", SqlDbType.NVarChar, 50) { Value = Test_Object });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@POSITION", SqlDbType.NVarChar, 50) { Value = Position });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@TRANS_MAIN_LOC", SqlDbType.NVarChar, 50) { Value = Trans_Main_Loc });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@FINE_LOC_1", SqlDbType.NVarChar, 50) { Value = Fine_Loc_1 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@FINE_LOC_2", SqlDbType.NVarChar, 50) { Value = Fine_Loc_2 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@FINE_LOC_3", SqlDbType.NVarChar, 50) { Value = Fine_Loc_3 });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@PHYSICAL_DIMENSION", SqlDbType.NVarChar, 50) { Value = Physical_Dimension });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@DIRECTION", SqlDbType.NVarChar, 50) { Value = Direction });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@DEFAULT_FILTER_CLASS", SqlDbType.NVarChar, 50)
|
|||
|
|
{
|
|||
|
|
Value = Default_Filter_Class
|
|||
|
|
});
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TEXT_L1", SqlDbType.NVarChar, 100) { Value = Text_L1 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TEXT_L2", SqlDbType.NVarChar, 100) { Value = Text_L2 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@VERSION", SqlDbType.Int) { Value = Version });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@DATE", SqlDbType.DateTime) { Value = Date });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@REMARKS", SqlDbType.NVarChar, 50) { Value = Remarks });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@EXPIRED", SqlDbType.Bit) { Value = Expired });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@SORTKEY", SqlDbType.NVarChar, 50) { Value = SortKey });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@PICTURE_SHORTNAME", SqlDbType.NVarChar, 50) { Value = Picture_ShortName });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@LAST_CHANGE", SqlDbType.DateTime) { Value = DateTime.Now });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@LAST_CHANGE_TEXT", SqlDbType.NVarChar, 50) { Value = "Created" });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@HISTORY", SqlDbType.NVarChar, 50) { Value = History });
|
|||
|
|
var errorNumberParam =
|
|||
|
|
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
|
|||
|
|
cmd.Parameters.Add(errorNumberParam);
|
|||
|
|
var errorMessageParam =
|
|||
|
|
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
|
|||
|
|
{
|
|||
|
|
Direction = ParameterDirection.Output
|
|||
|
|
};
|
|||
|
|
cmd.Parameters.Add(errorMessageParam);
|
|||
|
|
|
|||
|
|
#endregion params
|
|||
|
|
|
|||
|
|
cmd.ExecuteNonQuery();
|
|||
|
|
if (int.Parse(errorNumberParam.Value.ToString()) != 0)
|
|||
|
|
{
|
|||
|
|
//errorMessageParam.Value
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void CreateNewMMEChannel()
|
|||
|
|
{
|
|||
|
|
using (var cmd = DbOperations.GetSQLCommand(true))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|||
|
|
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_MMEPossibleChannelsUpdateInsert.ToString();
|
|||
|
|
|
|||
|
|
#region params
|
|||
|
|
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.BigInt) { Value = Id });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TYPE", SqlDbType.NVarChar, 50) { Value = Type });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TEST_OBJECT", SqlDbType.NVarChar, 50) { Value = Test_Object });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@POSITION", SqlDbType.NVarChar, 50) { Value = Position });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@TRANS_MAIN_LOC", SqlDbType.NVarChar, 50) { Value = Trans_Main_Loc });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@FINE_LOC_1", SqlDbType.NVarChar, 50) { Value = Fine_Loc_1 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@FINE_LOC_2", SqlDbType.NVarChar, 50) { Value = Fine_Loc_2 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@FINE_LOC_3", SqlDbType.NVarChar, 50) { Value = Fine_Loc_3 });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@PHYSICAL_DIMENSION", SqlDbType.NVarChar, 50) { Value = Physical_Dimension });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@DIRECTION", SqlDbType.NVarChar, 50) { Value = Direction });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@DEFAULT_FILTER_CLASS", SqlDbType.NVarChar, 50)
|
|||
|
|
{
|
|||
|
|
Value = Default_Filter_Class
|
|||
|
|
});
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TEXT_L1", SqlDbType.NVarChar, 100) { Value = Text_L1 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@TEXT_L2", SqlDbType.NVarChar, 100) { Value = Text_L2 });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@VERSION", SqlDbType.Int) { Value = Version });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@DATE", SqlDbType.DateTime) { Value = Date });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@REMARKS", SqlDbType.NVarChar, 50) { Value = Remarks });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@EXPIRED", SqlDbType.Bit) { Value = Expired });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@SORTKEY", SqlDbType.NVarChar, 50) { Value = SortKey });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@PICTURE_SHORTNAME", SqlDbType.NVarChar, 50) { Value = Picture_ShortName });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@LAST_CHANGE", SqlDbType.DateTime) { Value = DateTime.Now });
|
|||
|
|
cmd.Parameters.Add(
|
|||
|
|
new SqlParameter("@LAST_CHANGE_TEXT", SqlDbType.NVarChar, 50) { Value = "Created" });
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@HISTORY", SqlDbType.NVarChar, 50) { Value = History });
|
|||
|
|
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
|
|||
|
|
cmd.Parameters.Add(newIdParam);
|
|||
|
|
var errorNumberParam =
|
|||
|
|
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
|
|||
|
|
cmd.Parameters.Add(errorNumberParam);
|
|||
|
|
var errorMessageParam =
|
|||
|
|
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
|
|||
|
|
{
|
|||
|
|
Direction = ParameterDirection.Output
|
|||
|
|
};
|
|||
|
|
cmd.Parameters.Add(errorMessageParam);
|
|||
|
|
|
|||
|
|
#endregion params
|
|||
|
|
|
|||
|
|
cmd.ExecuteNonQuery();
|
|||
|
|
if (int.Parse(errorNumberParam.Value.ToString()) != 0)
|
|||
|
|
{
|
|||
|
|
//errorMessageParam.Value
|
|||
|
|
}
|
|||
|
|
var id = int.Parse(newIdParam.Value.ToString());
|
|||
|
|
Id = id == 0 ? Id : id;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
APILogger.LogException(ex);
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|