ProcessData (aka BatchResults) serialization part 2
This commit is contained in:
@@ -233,6 +233,7 @@ namespace Results.Entities
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(ProgramVersion);
|
||||
writer.Write(Id);
|
||||
writer.Write(BatchNr);
|
||||
writer.Write(TestBenchId);
|
||||
@@ -242,7 +243,6 @@ namespace Results.Entities
|
||||
writer.Write(Address3);
|
||||
writer.Write(Address4);
|
||||
writer.Write(Address5);
|
||||
writer.Write(ProgramVersion);
|
||||
writer.Write(UserName);
|
||||
writer.Write(UserNumber);
|
||||
writer.Write(ProcedureName);
|
||||
@@ -267,11 +267,28 @@ namespace Results.Entities
|
||||
writer.Write(Compound);
|
||||
writer.Write(HeatMeter);
|
||||
|
||||
/// TODO: Write lists
|
||||
IList<TestData> savedTestDatas = new List<TestData>(); /// Initially empty
|
||||
writer.Write(TestRslts.Count);
|
||||
for (int i = 0; i < TestRslts.Count; i++)
|
||||
{
|
||||
TestRslts[i].WriteBinary(writer, savedTestDatas);
|
||||
}
|
||||
|
||||
IList<WaterMeterData> savedWMDatas = new List<WaterMeterData>(); /// Initially empty
|
||||
writer.Write(WaterMeters.Count);
|
||||
for (int i = 0; i < WaterMeters.Count; i++)
|
||||
{
|
||||
WaterMeters[i].WriteBinary(writer, savedWMDatas);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
public virtual void ReadBinary(BinaryReader reader, string expectedProgramVersion)
|
||||
{
|
||||
ProgramVersion = reader.ReadString();
|
||||
if (expectedProgramVersion != null && ProgramVersion != expectedProgramVersion)
|
||||
{
|
||||
throw new Exception(string.Format("Process data were stored by TBF v.{0}", ProgramVersion));
|
||||
}
|
||||
Id = reader.ReadInt32();
|
||||
BatchNr = reader.ReadInt32();
|
||||
TestBenchId = reader.ReadInt32();
|
||||
@@ -281,7 +298,6 @@ namespace Results.Entities
|
||||
Address3 = reader.ReadString();
|
||||
Address4 = reader.ReadString();
|
||||
Address5 = reader.ReadString();
|
||||
ProgramVersion = reader.ReadString();
|
||||
UserName = reader.ReadString();
|
||||
UserNumber = reader.ReadInt32();
|
||||
ProcedureName = reader.ReadString();
|
||||
@@ -306,7 +322,27 @@ namespace Results.Entities
|
||||
Compound = reader.ReadBoolean();
|
||||
HeatMeter = reader.ReadBoolean();
|
||||
|
||||
/// TODO: Read lists
|
||||
}
|
||||
Tests = new List<TestData>(); /// Initially empty
|
||||
|
||||
int testRsltsCount = reader.ReadInt32();
|
||||
TestRslts = new List<TestRslt>();
|
||||
for (int i = 0; i < testRsltsCount; i++)
|
||||
{
|
||||
TestRslts.Add(new TestRslt());
|
||||
TestRslts[i].ReadBinary(reader, Tests);
|
||||
TestRslts[i].Batch = this;
|
||||
}
|
||||
|
||||
IList<WaterMeterData> wmDatasRetirevedSoFar = new List<WaterMeterData>(); /// Initially empty
|
||||
|
||||
int waterMetersCount = reader.ReadInt32();
|
||||
WaterMeters = new List<WaterMeter>();
|
||||
for (int i = 0; i < waterMetersCount; i++)
|
||||
{
|
||||
WaterMeters.Add(new WaterMeter());
|
||||
WaterMeters[i].ReadBinary(reader, wmDatasRetirevedSoFar, TestRslts);
|
||||
WaterMeters[i].Batch = this;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user