248 lines
14 KiB
C#
248 lines
14 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Data;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Data.SqlClient;
|
|||
|
|
|
|||
|
|
namespace DatabaseImport
|
|||
|
|
{
|
|||
|
|
/// <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 string Type { get; private set; }
|
|||
|
|
public string Test_Object { get; private set; }
|
|||
|
|
public string Position { get; private set; }
|
|||
|
|
public string Trans_Main_Loc { get; private set; }
|
|||
|
|
public string Fine_Loc_1 { get; private set; }
|
|||
|
|
public string Fine_Loc_2 { get; private set; }
|
|||
|
|
public string Fine_Loc_3 { get; private set; }
|
|||
|
|
public string Physical_Dimension { get; private set; }
|
|||
|
|
public string Direction { get; private set; }
|
|||
|
|
public string Default_Filter_Class { get; private set; }
|
|||
|
|
public string Text_L1 { get; private set; }
|
|||
|
|
public void SetText1(string text1) { Text_L1 = text1; }
|
|||
|
|
public string Text_L2 { get; private set; }
|
|||
|
|
public long Version { get; }
|
|||
|
|
public DateTime Date { get; }
|
|||
|
|
public string Remarks { get; private set; }
|
|||
|
|
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 void DeletePossibleChannels()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
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.UniqueIdentifier) { Value = null });
|
|||
|
|
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();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception) {/* APILogger.Log("failed to delete possible channels, ", ex);*/ }
|
|||
|
|
}
|
|||
|
|
public static MMEPossibleChannels[] GetPossibleChannels()
|
|||
|
|
{
|
|||
|
|
var possibleChannels = new List<MMEPossibleChannels>();
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
using (var cmd = DbOperations.GetSQLCommand(true))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|||
|
|
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_MMEPossibleChannelsGet.ToString();
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar) { Value = null });
|
|||
|
|
using (var ds = DbOperations.Connection.QueryDataSet(cmd))
|
|||
|
|
{
|
|||
|
|
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|||
|
|
{
|
|||
|
|
possibleChannels.AddRange(from DataRow dr in ds.Tables[0].Rows
|
|||
|
|
let id = Convert.ToInt64(dr["ID"])
|
|||
|
|
let type = Convert.ToString(dr["TYPE"])
|
|||
|
|
let testobject = Convert.ToString(dr["TEST_OBJECT"])
|
|||
|
|
let position = Convert.ToString(dr["POSITION"])
|
|||
|
|
let mainloc = Convert.ToString(dr["TRANS_MAIN_LOC"])
|
|||
|
|
let fineloc1 = Convert.ToString(dr["FINE_LOC_1"])
|
|||
|
|
let fineloc2 = Convert.ToString(dr["FINE_LOC_2"])
|
|||
|
|
let fineloc3 = Convert.ToString(dr["FINE_LOC_3"])
|
|||
|
|
let dimension = Convert.ToString(dr["PHYSICAL_DIMENSION"])
|
|||
|
|
let direction = Convert.ToString(dr["DIRECTION"])
|
|||
|
|
let filter = Convert.ToString(dr["DEFAULT_FILTER_CLASS"])
|
|||
|
|
let textL1 = Convert.ToString(dr["TEXT_L1"])
|
|||
|
|
let textL2 = Convert.ToString(dr["TEXT_L2"])
|
|||
|
|
let version = Convert.ToInt32(dr["VERSION"])
|
|||
|
|
let date = Convert.ToDateTime(dr["DATE"])
|
|||
|
|
let remarks = Convert.ToString(dr["REMARKS"])
|
|||
|
|
let expired = Convert.ToBoolean(dr["EXPIRED"])
|
|||
|
|
let sortkey = Convert.ToString(dr["SORTKEY"])
|
|||
|
|
let pictureShortName = Convert.ToString(dr["PICTURE_SHORTNAME"])
|
|||
|
|
let lastChange = Convert.ToDateTime(dr["LAST_CHANGE"])
|
|||
|
|
let lastChangeText = Convert.ToString(dr["LAST_CHANGE_TEXT"])
|
|||
|
|
let history = Convert.ToString(dr["HISTORY"])
|
|||
|
|
let isoFlag = Convert.ToString(dr["ISOFlag"])
|
|||
|
|
select new MMEPossibleChannels(id, type, testobject, position, mainloc, fineloc1,
|
|||
|
|
fineloc2, fineloc3, dimension, direction, filter, textL1, textL2,
|
|||
|
|
Convert.ToInt64(version), date, remarks, expired, sortkey, pictureShortName,
|
|||
|
|
lastChange, lastChangeText, history, Convert.ToInt16(isoFlag)));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception) { /*APILogger.Log("failed to get possible channels, ", ex);*/}
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
using (var cmd = DbOperations.GetSQLCommand(true))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|||
|
|
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_MMEPossibleChannelsGetCustom.ToString();
|
|||
|
|
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar) { Value = null });
|
|||
|
|
|
|||
|
|
using (var ds = DbOperations.Connection.QueryDataSet(cmd))
|
|||
|
|
{
|
|||
|
|
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|||
|
|
{
|
|||
|
|
possibleChannels.AddRange(from DataRow dr in ds.Tables[0].Rows
|
|||
|
|
let id = Convert.ToInt64(dr["ID"])
|
|||
|
|
let type = Convert.ToString(dr["TYPE"])
|
|||
|
|
let testobject = Convert.ToString(dr["TEST_OBJECT"])
|
|||
|
|
let position = Convert.ToString(dr["POSITION"])
|
|||
|
|
let mainloc = Convert.ToString(dr["TRANS_MAIN_LOC"])
|
|||
|
|
let fineloc1 = Convert.ToString(dr["FINE_LOC_1"])
|
|||
|
|
let fineloc2 = Convert.ToString(dr["FINE_LOC_2"])
|
|||
|
|
let fineloc3 = Convert.ToString(dr["FINE_LOC_3"])
|
|||
|
|
let dimension = Convert.ToString(dr["PHYSICAL_DIMENSION"])
|
|||
|
|
let direction = Convert.ToString(dr["DIRECTION"])
|
|||
|
|
let filter = Convert.ToString(dr["DEFAULT_FILTER_CLASS"])
|
|||
|
|
let textL1 = Convert.ToString(dr["TEXT_L1"])
|
|||
|
|
let textL2 = Convert.ToString(dr["TEXT_L2"])
|
|||
|
|
let version = Convert.ToInt32(dr["VERSION"])
|
|||
|
|
let date = Convert.ToDateTime(dr["DATE"])
|
|||
|
|
let remarks = Convert.ToString(dr["REMARKS"])
|
|||
|
|
let expired = Convert.ToBoolean(dr["EXPIRED"])
|
|||
|
|
let sortkey = Convert.ToString(dr["SORTKEY"])
|
|||
|
|
let pictureShortName = Convert.ToString(dr["PICTURE_SHORTNAME"])
|
|||
|
|
let lastChange = Convert.ToDateTime(dr["LAST_CHANGE"])
|
|||
|
|
let lastChangeText = Convert.ToString(dr["LAST_CHANGE_TEXT"])
|
|||
|
|
let history = Convert.ToString(dr["HISTORY"])
|
|||
|
|
let isoFlag = MMEChannelTypes.SQL
|
|||
|
|
select new MMEPossibleChannels(id, type, testobject, position, mainloc, fineloc1,
|
|||
|
|
fineloc2, fineloc3, dimension, direction, filter, textL1, textL2,
|
|||
|
|
Convert.ToInt64(version), date, remarks, expired, sortkey, pictureShortName,
|
|||
|
|
lastChange, lastChangeText, history, Convert.ToInt16(isoFlag)));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
cmd.Connection.Dispose();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception) { /*APILogger.Log("failed to get possible custom channels, ", ex); */}
|
|||
|
|
return possibleChannels.ToArray();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|