Everything works OK after serious changes:
- all components, componentCfg-s and parameter providers use base classes - less boilerplate code, simpler access to test/procedure parameters from code - CreateTestParams(test), CreateProcedureParams(procedure) methods added - TestBenchSim class is made static, it is not inheritted by any device anymore
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace TBF.BenchControl
|
||||
{
|
||||
public class TestParamsBase : Generic.ITestParams
|
||||
{
|
||||
protected Entities.ComponentTest testParamsEntity;
|
||||
|
||||
public string ComponentName { get { return componentName; } }
|
||||
protected string componentName;
|
||||
|
||||
public Entities.Test Test { get { return test; } }
|
||||
protected Entities.Test test;
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor required for serialization
|
||||
/// </summary>
|
||||
public TestParamsBase()
|
||||
{
|
||||
InitializeAll();
|
||||
}
|
||||
|
||||
/// <summary> To be overridden </summary>
|
||||
public virtual void InitializeAll()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary> To be overridden </summary>
|
||||
public virtual void UpdateTestParams(Entities.ComponentTest dbEntity)
|
||||
{
|
||||
}
|
||||
|
||||
public void UpdateTestParams(string cmpntName, Entities.Test test)
|
||||
{
|
||||
/// Search for an existing matching entity
|
||||
foreach (var tstPrms in test.MoreParams)
|
||||
{
|
||||
if (tstPrms.CmpntName.Equals(cmpntName))
|
||||
{
|
||||
UpdateTestParams(tstPrms);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a new entity and add it to the list test.MoreParams
|
||||
InitializeAll();
|
||||
Entities.ComponentTest componentTest = ToDbEntity(cmpntName, test);
|
||||
test.MoreParams.Add(componentTest);
|
||||
}
|
||||
|
||||
public TBF.Entities.ComponentTest ToDbEntity(string componentName, Entities.Test test)
|
||||
{
|
||||
using (var writer = new StringWriter())
|
||||
{
|
||||
/// Serialize this class with parameters
|
||||
(new XmlSerializer(GetType())).Serialize(writer, this);
|
||||
|
||||
/// Create and return the ComponentTest entity
|
||||
TBF.Entities.ComponentTest entity = new TBF.Entities.ComponentTest();
|
||||
entity.CmpntName = componentName;
|
||||
entity.Parameters = writer.ToString();
|
||||
entity.Test = test;
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateDbEntity()
|
||||
{
|
||||
using (var writer = new StringWriter())
|
||||
{
|
||||
/// Serialize this class and update the entity
|
||||
(new XmlSerializer(GetType())).Serialize(writer, this);
|
||||
testParamsEntity.Parameters = writer.ToString();
|
||||
testParamsEntity.CmpntName = componentName;
|
||||
testParamsEntity.Test = test;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string ParamName(int i) { return string.Empty; }
|
||||
|
||||
public virtual int ParamsCount() { return 0; }
|
||||
|
||||
public virtual string ToString(int i) { return string.Empty; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < ParamsCount(); i++)
|
||||
{
|
||||
if (i != 0) sb.Append("; ");
|
||||
sb.Append(ParamName(i));
|
||||
sb.Append("=");
|
||||
sb.Append(ToString(i));
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user