init
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DTS.Common.Interface.DataRecorders;
|
||||
using DTS.Common.Storage;
|
||||
using DTS.Common.Enums.Hardware;
|
||||
using DTS.Common.Classes.Hardware;
|
||||
using DTS.Common.Classes.TestSetups;
|
||||
using DTS.Common.Interface.TestSetups;
|
||||
using DataPROWin7.Common;
|
||||
|
||||
namespace DTS.Common.DataModel.Common.DbWrappers
|
||||
{
|
||||
public class TestSetupHardwareGet : TestSetupHardwareRecord
|
||||
{
|
||||
public TestSetupHardwareGet() { }
|
||||
public TestSetupHardwareGet(ITestSetupHardwareRecord copy) : base(copy) { }
|
||||
public bool AddOrRemove
|
||||
{
|
||||
get => AddDAS;
|
||||
set
|
||||
{
|
||||
AddDAS = value;
|
||||
OnPropertyChanged("AddOrRemove");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This ensures that any bad data in the database can be repaired in one place.
|
||||
/// FB 17777
|
||||
/// </summary>
|
||||
/// <param name="testSetupId"></param>
|
||||
/// <param name="hardwareLookup"></param>
|
||||
/// <returns></returns>
|
||||
public List<TestSetupHardwareGet> TestSetupHardwareGet_Wrapper(int? testSetupId, Dictionary<int, IDASHardware> hardwareLookup)
|
||||
{
|
||||
var testSetupHardwareGetList = new List<TestSetupHardwareGet>();
|
||||
|
||||
var hr = DbOperations.TestSetupHardwareGet(testSetupId, out var records);
|
||||
if (0 == hr && null != records && records.Any())
|
||||
{
|
||||
foreach (var record in records)
|
||||
{
|
||||
var testSetupHardwareGet = new TestSetupHardwareGet(record);
|
||||
if (record.AntiAliasFilterRate == 0 && null != hardwareLookup)
|
||||
{
|
||||
var dasTypeEnum = hardwareLookup[record.DASId].DASTypeEnum;
|
||||
testSetupHardwareGet.AntiAliasFilterRate = RepairAntiAliasFilterRate(dasTypeEnum, record.SamplesPerSecond);
|
||||
}
|
||||
testSetupHardwareGetList.Add(testSetupHardwareGet);
|
||||
}
|
||||
}
|
||||
|
||||
//Now make sure we don't return any 0s in AntiAliasFilterRate (hardwareLookup may have been passed in as null)
|
||||
foreach (var testSetupHardwareGet in testSetupHardwareGetList)
|
||||
{
|
||||
if (testSetupHardwareGet.AntiAliasFilterRate == 0)
|
||||
{
|
||||
var dasTypeEnum = GetDASTypeEnumFromId(testSetupHardwareGet.DASId);
|
||||
testSetupHardwareGet.AntiAliasFilterRate = RepairAntiAliasFilterRate(dasTypeEnum, testSetupHardwareGet.SamplesPerSecond);
|
||||
}
|
||||
}
|
||||
|
||||
return testSetupHardwareGetList;
|
||||
}
|
||||
private HardwareTypes GetDASTypeEnumFromId(int dasId)
|
||||
{
|
||||
var dasGet = new DASGet();
|
||||
var dasGetList = dasGet.DASGet_Wrapper();
|
||||
foreach (var das in dasGetList)
|
||||
{
|
||||
if (das.DASId == dasId)
|
||||
{
|
||||
var dasTemp = new DTS.Common.ISO.Hardware();
|
||||
//Get of DASTypeEnum returns the enum: (HardwareTypes)DASType
|
||||
dasTemp.DASType = das.Type;
|
||||
return dasTemp.DASTypeEnum;
|
||||
}
|
||||
}
|
||||
return HardwareTypes.UNDEFINED;
|
||||
}
|
||||
private int RepairAntiAliasFilterRate(HardwareTypes dasTypeEnum, int samplesPerSecond)
|
||||
{
|
||||
int antiAliasFilterRate = 0;
|
||||
|
||||
switch (dasTypeEnum)
|
||||
{
|
||||
case HardwareTypes.DIM:
|
||||
case HardwareTypes.G5INDUMMY:
|
||||
case HardwareTypes.G5VDS:
|
||||
case HardwareTypes.SIM:
|
||||
case HardwareTypes.TDAS_Pro_Rack:
|
||||
case HardwareTypes.TDAS_LabRack:
|
||||
case HardwareTypes.TOM:
|
||||
//TDAS allows 0, so don't do the repair
|
||||
//antiAliasFilterRate = Convert.ToInt32(SerializedSettings.GetAAFException(SerializableAAF.DAS_TYPE.TDAS, samplesPerSecond));
|
||||
break;
|
||||
default:
|
||||
antiAliasFilterRate = Convert.ToInt32(SerializedSettings.GetAAFException(SerializableAAF.DAS_TYPE.SLICE, samplesPerSecond));
|
||||
break;
|
||||
}
|
||||
|
||||
return antiAliasFilterRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using DTS.Common.Base;
|
||||
using DTS.Common.Storage;
|
||||
using DTS.Common.Enums;
|
||||
using DTS.Common.DataModel;
|
||||
using DTS.Common.SharedResource.Strings;
|
||||
|
||||
namespace DataPROWin7.DataModel
|
||||
{
|
||||
public class TestEngineerDetails : BasePropertyChanged
|
||||
{
|
||||
|
||||
private bool _blank = true;
|
||||
public bool IsBlank() { return _blank; }
|
||||
|
||||
private DTS.Common.ISO.TestEngineerDetails _testEngineerDetails;
|
||||
public enum Fields
|
||||
{
|
||||
Name,
|
||||
TestEngineerName,
|
||||
TestEngineerPhone,
|
||||
TestEngineerFax,
|
||||
TestEngineerEmail
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => _testEngineerDetails.Name;
|
||||
set
|
||||
{
|
||||
_testEngineerDetails.Name = value;
|
||||
_blank = false;
|
||||
OnPropertyChanged(Fields.Name.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public string TestEngineerName
|
||||
{
|
||||
get => _testEngineerDetails.TestEngineerName;
|
||||
set
|
||||
{
|
||||
_testEngineerDetails.TestEngineerName = value;
|
||||
_blank = false;
|
||||
OnPropertyChanged(Fields.TestEngineerName.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public string TestEngineerPhone
|
||||
{
|
||||
get => _testEngineerDetails.TestEngineerPhone;
|
||||
set
|
||||
{
|
||||
_testEngineerDetails.TestEngineerPhone = value;
|
||||
_blank = false;
|
||||
OnPropertyChanged(Fields.TestEngineerPhone.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public string TestEngineerFax
|
||||
{
|
||||
get => _testEngineerDetails.TestEngineerFax;
|
||||
set
|
||||
{
|
||||
_testEngineerDetails.TestEngineerFax = value;
|
||||
_blank = false;
|
||||
OnPropertyChanged(Fields.TestEngineerFax.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public string TestEngineerEmail
|
||||
{
|
||||
get => _testEngineerDetails.TestEngineerEmail;
|
||||
set
|
||||
{
|
||||
_testEngineerDetails.TestEngineerEmail = value;
|
||||
_blank = false;
|
||||
OnPropertyChanged(Fields.TestEngineerEmail.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public bool LocalOnly => _testEngineerDetails.LocalOnly;
|
||||
|
||||
public DateTime LastModified => _testEngineerDetails.LastModified;
|
||||
|
||||
public string LastModifiedBy => _testEngineerDetails.LastModifiedBy;
|
||||
|
||||
public int Version => _testEngineerDetails.Version;
|
||||
|
||||
public TestEngineerDetails()
|
||||
{
|
||||
_testEngineerDetails = new DTS.Common.ISO.TestEngineerDetails();
|
||||
_testEngineerDetails.Name = StringResources.TestTemplate_EmptyListName;
|
||||
}
|
||||
|
||||
public bool HasBlankName()
|
||||
{
|
||||
return _testEngineerDetails.Name == StringResources.TestTemplate_EmptyListName;
|
||||
}
|
||||
public TestEngineerDetails(DTS.Common.ISO.TestEngineerDetails testEngineerDetails)
|
||||
{
|
||||
_blank = false;
|
||||
_testEngineerDetails = new DTS.Common.ISO.TestEngineerDetails(testEngineerDetails);
|
||||
}
|
||||
public DTS.Common.ISO.TestEngineerDetails GetISOTestEngineer()
|
||||
{
|
||||
return _testEngineerDetails;
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
public class TestEngineerDetailsList : BasePropertyChanged
|
||||
{
|
||||
public enum Tags
|
||||
{
|
||||
TestEngineers
|
||||
|
||||
}
|
||||
protected TestEngineerDetailsList()
|
||||
{
|
||||
}
|
||||
|
||||
private static TestEngineerDetailsList _testEngineerList = new TestEngineerDetailsList();
|
||||
public static TestEngineerDetailsList TestEngineerList => _testEngineerList;
|
||||
public void Delete(TestEngineerDetails testEngineer)
|
||||
{
|
||||
testEngineer.GetISOTestEngineer().Delete(ApplicationProperties.CurrentUser.UserName);
|
||||
lock (_testEngineerLock)
|
||||
{
|
||||
_testEngineers.Remove(testEngineer.Name);
|
||||
}
|
||||
OnPropertyChanged(Tags.TestEngineers.ToString());
|
||||
}
|
||||
public void Delete(TestEngineerDetails[] testEngineers)
|
||||
{
|
||||
foreach (var testEngineer in testEngineers)
|
||||
{
|
||||
Delete(testEngineer);
|
||||
}
|
||||
}
|
||||
private static readonly object _testEngineerLock = new object();
|
||||
private Dictionary<string, TestEngineerDetails> _testEngineers = null;
|
||||
public TestEngineerDetails[] TestEngineers
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_testEngineerLock)
|
||||
{
|
||||
if (null == _testEngineers || _testEngineers.Count == 0)
|
||||
{
|
||||
PopulateEngineers();
|
||||
}
|
||||
}
|
||||
List<TestEngineerDetails> testEngineers = new List<TestEngineerDetails>(_testEngineers.Values);
|
||||
testEngineers.Sort(new Comparison<TestEngineerDetails>(CompareTestEngineers));
|
||||
return testEngineers.ToArray();
|
||||
}
|
||||
}
|
||||
private void PopulateEngineers()
|
||||
{
|
||||
_testEngineers = new Dictionary<string, TestEngineerDetails>();
|
||||
foreach (var t in GetAllTestEngineers())
|
||||
{
|
||||
if (!_testEngineers.ContainsKey(t.Name)) { _testEngineers.Add(t.Name, t); }
|
||||
}
|
||||
}
|
||||
public void ReloadAll()
|
||||
{
|
||||
lock (_testEngineerLock)
|
||||
{
|
||||
PopulateEngineers();
|
||||
}
|
||||
}
|
||||
public void DeleteAll()
|
||||
{
|
||||
_testEngineers = null;
|
||||
DTS.Common.ISO.TestEngineerDetails.DeleteAllTestEngineerDetails();
|
||||
}
|
||||
private int CompareTestEngineers(TestEngineerDetails a, TestEngineerDetails b)
|
||||
{
|
||||
if (a == b) { return 0; }
|
||||
if (null == a) { return -1; }
|
||||
if (null == b) { return 1; }
|
||||
return a.Name.CompareTo(b.Name);
|
||||
}
|
||||
|
||||
public static TestEngineerDetails[] GetAllTestEngineers()
|
||||
{
|
||||
var list = new List<TestEngineerDetails>();
|
||||
if (RunTestVariables.InRunTest &&
|
||||
TestTemplateList.TestTemplatesList.CachedTestEngineerDetails != null &&
|
||||
TestTemplateList.TestTemplatesList.CachedTestEngineerDetails.Count > 0)
|
||||
{
|
||||
DbOperations.LogDBCaching("****** Using cached Laboratory Details in GetAllTestEngineers");
|
||||
var isoTestEngineersList = new List<DTS.Common.ISO.TestEngineerDetails>();
|
||||
foreach (var te in TestTemplateList.TestTemplatesList.CachedTestEngineerDetails)
|
||||
{
|
||||
var isoTestEngineerDetails = new DTS.Common.ISO.TestEngineerDetails()
|
||||
{
|
||||
Name = te.Value.Name,
|
||||
TestEngineerName = te.Value.TestEngineerName,
|
||||
TestEngineerPhone = te.Value.TestEngineerPhone,
|
||||
TestEngineerEmail = te.Value.TestEngineerEmail,
|
||||
TestEngineerFax = te.Value.TestEngineerFax
|
||||
};
|
||||
|
||||
isoTestEngineersList.Add(isoTestEngineerDetails);
|
||||
}
|
||||
list = isoTestEngineersList.Select(isote => new TestEngineerDetails(isote)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var ts in DTS.Common.ISO.TestEngineerDetails.GetAllTestEngineerDetails())
|
||||
{
|
||||
list.Add(new TestEngineerDetails(ts));
|
||||
}
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
|
||||
public TestEngineerDetails GetTestEngineerDetail(string name)
|
||||
{
|
||||
var testEngineers = from t in TestEngineers.AsParallel() where t.Name == name select t;
|
||||
if (null != testEngineers && testEngineers.Any()) { return testEngineers.First(); }
|
||||
else { return null; }
|
||||
}
|
||||
|
||||
public void AddTestEngineer(TestEngineerDetails testEngineer)
|
||||
{
|
||||
testEngineer.GetISOTestEngineer().Commit(ApplicationProperties.CurrentUser.UserName);
|
||||
lock (_testEngineerLock)
|
||||
{
|
||||
//force _testEngineers to not be null...
|
||||
var length = TestEngineers.Length;
|
||||
if (!_testEngineers.ContainsKey(testEngineer.Name)) { _testEngineers.Add(testEngineer.Name, testEngineer); }
|
||||
else { _testEngineers[testEngineer.Name] = testEngineer; }
|
||||
}
|
||||
OnPropertyChanged(Tags.TestEngineers.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user