using System; using System.Collections.Generic; namespace TracingDB.Entities { public class Process { public virtual int Id { get; protected set; } public virtual int ItemNr { get; set; } public virtual string Name { get; set; } public virtual int SubClass { get; set; } /// Main process: 1, Sub processes: 2, 4, 8, ... public virtual string Description { get; set; } public virtual string CreatedBy { get; set; } public virtual DateTime TimeStamp { get; set; } public virtual string ApprovedBy { get; set; } public virtual DateTime TimeStamp2 { get; set; } public virtual string ReleaseNotes { get; set; } public virtual ReleaseStatus ReleaseStatus { get; set; } public virtual IList Parts { get; set; } public virtual IList Worksteps { get; set; } /// Wrappers public virtual SubClass GetSubClass() { return (SubClass)SubClass; } public virtual void SetSubClass(SubClass subClass) { SubClass = (int)subClass; } /// /// Default (private) constructor inicializing lists /// protected Process() { Parts = new List(); Worksteps = new List(); } /// /// Constructor used when this process is created /// /// public Process(string name) : this() { Name = name; SubClass = 0; Description = string.Empty; ReleaseNotes = string.Empty; CreatedBy = "admin"; TimeStamp = DateTime.Now; ApprovedBy = string.Empty; TimeStamp2 = DateTime.Now; ReleaseStatus = ReleaseStatus.In_preparation; } /// /// Create a copy of a process with a new name /// /// /// public virtual Process Clone(string name) { Process rslt = new Process(name); rslt.SubClass = SubClass; rslt.Description = Description; rslt.ReleaseNotes = ReleaseNotes; CreatedBy = "admin"; TimeStamp = DateTime.Now; ApprovedBy = string.Empty; TimeStamp2 = DateTime.Now; ReleaseStatus = ReleaseStatus.In_preparation; foreach (var part in Parts) rslt.Parts.Add(part.Clone(rslt)); foreach (var workstep in Worksteps) rslt.Worksteps.Add(workstep.Clone(rslt)); return rslt; } public override string ToString() { return string.IsNullOrEmpty(Name) ? string.Empty : Name; } } }