2018-01-26 12:55:32 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
2018-08-28 07:28:58 +00:00
|
|
|
|
namespace TracingDB.Entities
|
2018-01-26 12:55:32 +00:00
|
|
|
|
{
|
|
|
|
|
|
public class ReferenceRecord
|
|
|
|
|
|
{
|
|
|
|
|
|
public virtual int Id { get; protected set; }
|
|
|
|
|
|
public virtual string Code { get; set; }
|
|
|
|
|
|
public virtual DateTime TimeStamp { get; set; }
|
|
|
|
|
|
public virtual string UserName { get; set; }
|
|
|
|
|
|
public virtual string Workplace { get; set; }
|
|
|
|
|
|
public virtual int Result { get; set; } /// 0 = No error (OK), >0 = Error code
|
|
|
|
|
|
|
|
|
|
|
|
public virtual Process Process { get; set; }
|
|
|
|
|
|
public virtual Workstep Workstep { get; set; }
|
|
|
|
|
|
public virtual IList<Record> Records { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Default (private) constructor inicializing lists
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
protected ReferenceRecord()
|
|
|
|
|
|
{
|
|
|
|
|
|
Records = new List<Record>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Constructor used when reference barcode is scanned
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="process">Process</param>
|
|
|
|
|
|
/// <param name="workstep">Workstep</param>
|
|
|
|
|
|
/// <param name="code">Scanned barcode</param>
|
|
|
|
|
|
public ReferenceRecord(Process process, Workstep workstep, string code,
|
|
|
|
|
|
string userName, string workplace, int result)
|
2019-03-01 13:16:04 +00:00
|
|
|
|
: this()
|
2018-01-26 12:55:32 +00:00
|
|
|
|
{
|
|
|
|
|
|
Process = process;
|
|
|
|
|
|
Workstep = workstep;
|
|
|
|
|
|
Code = code;
|
|
|
|
|
|
TimeStamp = DateTime.Now;
|
|
|
|
|
|
UserName = userName;
|
|
|
|
|
|
Workplace = workplace;
|
|
|
|
|
|
Result = result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Create a copy of a process with a new name
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="name"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public virtual ReferenceRecord Clone(Process newProcess)
|
|
|
|
|
|
{
|
|
|
|
|
|
Workstep newWorkstep = null;
|
|
|
|
|
|
foreach (var ws in newProcess.Worksteps)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Workstep.Name == ws.Name)
|
|
|
|
|
|
{
|
|
|
|
|
|
newWorkstep = ws;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ReferenceRecord rslt = new ReferenceRecord(newProcess, newWorkstep,
|
|
|
|
|
|
Code, UserName, Workplace, Result);
|
|
|
|
|
|
rslt.TimeStamp = TimeStamp;
|
|
|
|
|
|
|
|
|
|
|
|
rslt.Records = new List<Record>();
|
|
|
|
|
|
foreach (var record in Records)
|
|
|
|
|
|
{
|
|
|
|
|
|
rslt.Records.Add(record.Clone(newProcess, rslt));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return rslt;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
|
{
|
|
|
|
|
|
return string.Format("code={0} part={1} description='{2}' step='{3}' workplace='{4}' user={5} time={6:dd.MM.yyyy HH:mm:ss}",
|
|
|
|
|
|
(Code != null) ? Code : "<none>",
|
2020-12-15 10:48:57 +00:00
|
|
|
|
(Workstep != null) ? Workstep.ReferencePart.Name : string.Empty,
|
|
|
|
|
|
(Workstep != null) ? Workstep.ReferencePart.Description : string.Empty,
|
|
|
|
|
|
(Workstep != null) ? Workstep.Name : string.Empty,
|
2018-01-26 12:55:32 +00:00
|
|
|
|
Workplace,
|
|
|
|
|
|
UserName,
|
|
|
|
|
|
TimeStamp);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|