init
This commit is contained in:
@@ -0,0 +1,509 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace DatabaseExport
|
||||
{
|
||||
public class TestTemplateList //: BindableBase
|
||||
{
|
||||
/// <summary>
|
||||
/// this property is to hold a template in memory temporarily
|
||||
/// without committing it to the db, but to still act as if it is in the db
|
||||
/// </summary>
|
||||
public TestTemplate TemporaryTemplate { get; set; }
|
||||
protected TestTemplateList() { }
|
||||
public TestTemplate GetTemplate(string name)
|
||||
{
|
||||
if (name == "Quick checkout") // StringResources.QuickSensorCheck_DefaultTestName)
|
||||
{
|
||||
return TemporaryTemplate;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(name)) { return null; }
|
||||
try
|
||||
{
|
||||
using (var cmd = DbOperations.GetCommand())
|
||||
{
|
||||
cmd.CommandText = string.Format("SELECT * FROM [{0}] WHERE [{1}]=@1",
|
||||
DbOperations.TestSetups.TestSetupsTable, DbOperations.TestSetups.Fields.SetupName);
|
||||
DbOperations.CreateParam(cmd, "@1", SqlDbType.NVarChar, name);
|
||||
|
||||
using (var ds = DbOperations.Connection.QueryDataSet(cmd))
|
||||
{
|
||||
if (ds.Tables.Count <= 0 || ds.Tables[0].Rows.Count <= 0) return null;
|
||||
var dr = ds.Tables[0].Rows[0];
|
||||
|
||||
var tt = new TestTemplate();
|
||||
tt.SetTimeStampMemory(dr);
|
||||
//make sure this template is marked as unloaded, because we
|
||||
//are only going to load the essentials here...
|
||||
tt._bIsLoaded = false;
|
||||
|
||||
var fields =
|
||||
Enum.GetValues(typeof(DbOperations.TestSetups.Fields))
|
||||
.Cast<DbOperations.TestSetups.Fields>()
|
||||
.ToArray();
|
||||
foreach (var field in fields)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (DBNull.Value.Equals(dr[field.ToString()]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
var o = dr[field.ToString()];
|
||||
|
||||
#region DbOperations.TestSetups.Fields
|
||||
|
||||
switch (field)
|
||||
{
|
||||
case DbOperations.TestSetups.Fields.AllowMissingSensors:
|
||||
tt.AllowMissingSensors = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.AllowSensorIdToBlankChannel:
|
||||
tt.AllowSensorIdToBlankChannel = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.AutomaticProgressionDelayMS:
|
||||
tt.AutomaticProgressionDelayMS = Convert.ToInt32(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.AutomaticTestProgression:
|
||||
tt.AutomaticProgression = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.AutoVerifyChannels:
|
||||
tt.AutoVerifyChannels = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.CommonStatusLine:
|
||||
tt.CommonLine = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.UploadData:
|
||||
tt.UploadData = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.UploadDataFolder:
|
||||
tt.UploadFolder = Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.CustomerDetails:
|
||||
tt.CustomerDetails =
|
||||
CustomerDetailsList.CustomerList.GetCustomerDetail(Convert.ToString(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.TestEngineerDetails:
|
||||
tt.TestEngineerDetails =
|
||||
TestEngineerDetailsList.TestEngineerList.GetTestEngineerDetail(
|
||||
Convert.ToString(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.DownloadAll:
|
||||
tt.DownloadAll = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.DownloadFolder:
|
||||
tt.DownloadFolder = Properties.Settings.Default.DownloadFolder;
|
||||
// Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.Export:
|
||||
tt.ViewExport = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ExportFolder:
|
||||
tt.ExportFolder = Properties.Settings.Default.DownloadFolder;
|
||||
//Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ExportFormat:
|
||||
tt.ExportFormats = (SupportedExportFormatBitFlags)Convert.ToUInt64(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.InvertStart:
|
||||
tt.InvertStartRecordCompletion = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.TriggerCheckRealtime:
|
||||
tt.TriggerCheckRealtime = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.TriggerCheckStep:
|
||||
tt.TriggerCheckStep = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.PostTestDiagnostics:
|
||||
tt.PostTestDiagnosticsLevel = (0 != Convert.ToInt32(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.InvertTrigger:
|
||||
tt.InvertTriggerCompletion = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.LabDetails:
|
||||
tt.LabDetails = LabratoryDetailsList.LabratoryList.GetLab(Convert.ToString(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.LastModified:
|
||||
tt.LastModified = Convert.ToDateTime(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.LastModifiedBy:
|
||||
tt.LastModifiedBy = Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.LocalOnly:
|
||||
tt.LocalOnly = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.PostTriggerSeconds:
|
||||
tt.PostTriggerSeconds = Convert.ToDouble(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.PreTriggerSeconds:
|
||||
tt.PreTriggerSeconds = Convert.ToDouble(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.RealtimePlotCount:
|
||||
tt.DefaultNumberRealtimeGraphs = Convert.ToInt32(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.RecordingMode:
|
||||
tt.RecordingMode = (RecordingModes)Convert.ToInt32(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.RequireConfirmationOnErrors:
|
||||
tt.RequireUserConfirmationOnErrors = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ROIDownload:
|
||||
tt.DoROIDownload = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ROIEnd:
|
||||
tt.ROIEnd = Convert.ToDouble(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ROIStart:
|
||||
tt.ROIStart = Convert.ToDouble(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.SameAsDownloadFolder:
|
||||
tt.SameAsDownloadFolder = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.SamplesPerSecond:
|
||||
tt.SamplesPerSecond = Convert.ToDouble(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.Settings:
|
||||
tt.LoadSettings(Convert.ToString(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.WarnOnBatteryFail:
|
||||
tt.WarnOnFailedBattery = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.SetupDescription:
|
||||
tt.Description = Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.SetupName:
|
||||
tt.Name = Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.StrictDiagnostics:
|
||||
tt.StrictDiagnostics = (Convert.ToInt32(o)) != 0;
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.UseCustomerDetails:
|
||||
tt.UseCustomerDetails = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.UseTestEngineerDetails:
|
||||
tt.UseTestEngineerDetails = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.TurnOffExcitation:
|
||||
tt.TurnOffExcitation = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.UseLabDetails:
|
||||
tt.UseLabratoryDetails = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.VerifyChannels:
|
||||
tt.VerifyChannels = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.VerifyChannelsDelayMS:
|
||||
tt.AutoVerifyDelaySeconds = Convert.ToDouble(o) / 1000D;
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ViewDiagnostics:
|
||||
tt.ViewDiagnostics = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ViewDownloadAll:
|
||||
tt.ViewDownloadAll = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ViewRealtime:
|
||||
tt.ViewRealtime = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ViewROIDownload:
|
||||
tt.ViewROIDownload = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.Dirty:
|
||||
tt.SetIsDirty(Convert.ToBoolean(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.Complete:
|
||||
tt.SetIsComplete(Convert.ToBoolean(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ISFFile:
|
||||
tt.ISFFile = Convert.ToString(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.ErrorMessage:
|
||||
tt.SetCompletionErrorMessage(Convert.ToString(o));
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.CheckoutMode:
|
||||
tt.CheckoutMode = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.QuitTestWithoutWarning:
|
||||
tt.QuitTestWithoutWarning = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.SuppressMissingSensorsWarning:
|
||||
tt.SuppressMissingSensorsWarning = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.NotAllChannelsRealTime:
|
||||
tt.NotAllChannelsRealTime = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.NotAllChannelsViewer:
|
||||
tt.NotAllChannelsViewer = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.UserTags:
|
||||
tt.TagsBlobBytes = (byte[])o;
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.DoAutoArm:
|
||||
tt.DoAutoArm = Convert.ToBoolean(o);
|
||||
break;
|
||||
case DbOperations.TestSetups.Fields.DoStreaming:
|
||||
tt.DoStreaming = Convert.ToBoolean(o);
|
||||
break;
|
||||
}
|
||||
|
||||
#endregion DbOperations.TestSetups.Fields
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//APILogger.Log("Failed to process: ", field.ToString(), ex);
|
||||
}
|
||||
}
|
||||
return tt;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//APILogger.Log(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public static SensorData GetSensorFromSettings(string settings, string serial, Dictionary<string, SensorData> lookup)
|
||||
{
|
||||
SensorData sd = null;
|
||||
if (null != lookup && lookup.ContainsKey(serial)) { sd = lookup[serial]; }
|
||||
if (null == sd) { sd = SensorsCollection.SensorsList.GetSensorBySerialNumber(serial); }
|
||||
|
||||
if (string.IsNullOrWhiteSpace(serial))
|
||||
{
|
||||
sd = new SensorData { SerialNumber = "" };
|
||||
}
|
||||
if (null == sd) { return null; }
|
||||
sd = new SensorData(sd);
|
||||
var tokens = settings.Split(',');
|
||||
foreach (var token in tokens)
|
||||
{
|
||||
var subtokens = token.Split('=');
|
||||
var setting = (ISO.TestObject.SensorSettings)int.Parse(subtokens[0]);
|
||||
switch (setting)
|
||||
{
|
||||
case ISO.TestObject.SensorSettings.CFC:
|
||||
sd.FilterClassIso = subtokens[1];
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Position:
|
||||
sd.Position = subtokens[1];
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Polarity:
|
||||
sd.Invert = subtokens[1] == "-";
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Range:
|
||||
sd.Capacity = double.Parse(subtokens[1], CultureInfo.InvariantCulture);
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Delay:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.DelayMS = double.Parse(subtokens[1], CultureInfo.InvariantCulture); sd.DigitalOutputDelayMS = sd.DelayMS; }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Duration:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.DurationMS = double.Parse(subtokens[1], CultureInfo.InvariantCulture); sd.DigitalOutputDurationMS = sd.DurationMS; }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.OutputMode:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.DigitalOutputMode = (OutputTOMDigitalChannel.DigitalOutputMode)Convert.ToInt32(subtokens[1]); }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.SQMode:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.SquibFireMode = (OutputSquibChannel.SquibFireMode)Convert.ToInt32(subtokens[1]); }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.DIMode:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.InputMode = (DigitalInputScaleMultiplier.InputModes)Convert.ToInt32(subtokens[1]); }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.LimitDuration:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.LimitDuration = bool.Parse(subtokens[1]); }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.ActiveValue:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.ScaleMultiplier.ActiveValue = Convert.ToDouble(subtokens[1]); }
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.DefaultValue:
|
||||
if (!string.IsNullOrWhiteSpace(subtokens[1])) { sd.ScaleMultiplier.DefaultValue = Convert.ToDouble(subtokens[1]); }
|
||||
break;
|
||||
}
|
||||
}
|
||||
return sd;
|
||||
}
|
||||
public static SensorData GetSensorFromSettings(string settings, string serial)
|
||||
{
|
||||
return GetSensorFromSettings(settings, serial, null);
|
||||
}
|
||||
public static string GetSensorSettings(SensorData sd)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
var settings = Enum.GetValues(typeof(ISO.TestObject.SensorSettings)).Cast<ISO.TestObject.SensorSettings>().ToArray();
|
||||
var bNeedComma = false;
|
||||
foreach (var setting in settings)
|
||||
{
|
||||
if (bNeedComma) { sb.Append(","); }
|
||||
bNeedComma = true;
|
||||
sb.AppendFormat("{0}=", (int)setting);
|
||||
switch (setting)
|
||||
{
|
||||
case ISO.TestObject.SensorSettings.CFC:
|
||||
sb.Append(sd.FilterClassIso);
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Position:
|
||||
sb.Append(sd.Position);
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Polarity:
|
||||
sb.Append(sd.Invert ? "-" : "+");
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Range:
|
||||
sb.Append(sd.Capacity.ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.SQMode:
|
||||
sb.Append(((int)sd.SquibFireMode).ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.LimitDuration:
|
||||
sb.Append(sd.LimitDuration.ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Duration:
|
||||
sb.Append(sd.DurationMS.ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.OutputMode:
|
||||
sb.Append(((int)sd.DigitalOutputMode).ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.Delay:
|
||||
sb.Append(sd.DelayMS.ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.DIMode:
|
||||
sb.Append(((int)sd.InputMode).ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.DefaultValue:
|
||||
sb.Append(sd.ScaleMultiplier.DefaultValue.ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case ISO.TestObject.SensorSettings.ActiveValue:
|
||||
sb.Append(
|
||||
sd.ScaleMultiplier.ActiveValue.ToString(CultureInfo.InvariantCulture));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private static TestTemplateList _list;
|
||||
private static readonly object ObjectLock = new object();
|
||||
public static TestTemplateList TestTemplatesList
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (ObjectLock)
|
||||
{
|
||||
if (null == _list) { _list = new TestTemplateList(); }
|
||||
}
|
||||
return _list;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool SysBuiltObject(string serialNumber)
|
||||
{
|
||||
var temp = false;
|
||||
using (var cmd = DbOperations.GetCommand())
|
||||
{
|
||||
cmd.CommandText = string.Format("SELECT * FROM [tblTestObjects] where [SerialNumber]=@{0}", "SerialNumber");
|
||||
DbOperations.CreateParam(cmd, string.Format("@{0}", "SerialNumber"), SqlDbType.NVarChar, serialNumber);
|
||||
|
||||
using (var ds2 = DbOperations.Connection.QueryDataSet(cmd))
|
||||
{
|
||||
if (ds2.Tables.Count <= 0 || ds2.Tables[0].Rows.Count <= 0) return false;
|
||||
foreach (DataRow row in ds2.Tables[0].Rows)
|
||||
{
|
||||
//really only 1 row
|
||||
temp = Convert.ToBoolean(row["SysBuilt"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return temp;
|
||||
}
|
||||
public static void ConvertToDictionary(DataTable dt, ref Dictionary<string, List<Dictionary<string, object>>> lookup, string key)
|
||||
{
|
||||
var count = dt.Columns.Count;
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
var thiskey = Convert.ToString(dr[key]);
|
||||
if (!lookup.ContainsKey(thiskey)) { lookup.Add(thiskey, new List<Dictionary<string, object>>()); }
|
||||
var properties = new Dictionary<string, object>(count);
|
||||
foreach (DataColumn c in dt.Columns)
|
||||
{
|
||||
properties[c.ColumnName] = dr[c.ColumnName];
|
||||
}
|
||||
lookup[thiskey].Add(properties);
|
||||
}
|
||||
}
|
||||
public TestTemplateTableObject[] GetAllTemplates()
|
||||
{
|
||||
var objects = new List<TestTemplateTableObject>();
|
||||
using (var cmd = DbOperations.GetCommand())
|
||||
{
|
||||
cmd.CommandText =
|
||||
"SELECT SetupName, SetupDescription, RecordingMode, Dirty, Complete, LastModified, LastModifiedBy, ErrorMessage, CustomerDetails, UseCustomerDetails, UserTags FROM tblTestSetups";
|
||||
|
||||
using (var ds = DbOperations.Connection.QueryDataSet(cmd))
|
||||
{
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
try
|
||||
{
|
||||
var setupName = (string)dr["SetupName"];
|
||||
var setupDescription = (string)dr["SetupDescription"];
|
||||
var recordingMode = Convert.ToInt32(dr["RecordingMode"]);
|
||||
var dirty = Convert.ToBoolean(dr["Dirty"]);
|
||||
var complete = Convert.ToBoolean(dr["Complete"]);
|
||||
var lastModified = Convert.ToDateTime(dr["LastModified"]);
|
||||
var lastModifiedBy = (string)dr["LastModifiedBy"];
|
||||
var errorMessage = Convert.ToString(dr["ErrorMessage"]);
|
||||
var customerDetails = (string)dr["CustomerDetails"];
|
||||
var useCustomerDetails = Convert.ToBoolean(dr["UseCustomerDetails"]);
|
||||
var tagBlobObj = dr["UserTags"];
|
||||
byte[] tagBlob = null;
|
||||
int[] tagIds = null;
|
||||
if (DBNull.Value.Equals(tagBlobObj))
|
||||
{
|
||||
tagBlob = new byte[0];
|
||||
tagIds = new int[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
tagBlob = (byte[])dr["UserTags"];
|
||||
tagIds = GetTagIds(tagBlob);
|
||||
}
|
||||
|
||||
if (dirty)
|
||||
{
|
||||
var tt = TestTemplatesList.GetTemplate(setupName);
|
||||
complete = tt.IsComplete;
|
||||
}
|
||||
|
||||
objects.Add(new TestTemplateTableObject(setupName, setupDescription,
|
||||
(RecordingModes)recordingMode, lastModified, lastModifiedBy, complete,
|
||||
errorMessage, useCustomerDetails, customerDetails, tagIds));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//APILogger.Log(ex);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return objects.ToArray();
|
||||
}
|
||||
|
||||
private int[] GetTagIds(byte[] bytes)
|
||||
{
|
||||
var tagsBlob = new int[bytes.Length / sizeof(int)];
|
||||
try
|
||||
{
|
||||
Buffer.BlockCopy(bytes, 0, tagsBlob, 0, bytes.Length);
|
||||
return tagsBlob;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//APILogger.Log(ex);
|
||||
}
|
||||
return new int[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user