85 lines
2.6 KiB
C#
85 lines
2.6 KiB
C#
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<Part> Parts { get; set; }
|
|
public virtual IList<Workstep> Worksteps { get; set; }
|
|
|
|
|
|
/// Wrappers
|
|
public virtual SubClass GetSubClass() { return (SubClass)SubClass; }
|
|
public virtual void SetSubClass(SubClass subClass) { SubClass = (int)subClass; }
|
|
|
|
|
|
/// <summary>
|
|
/// Default (private) constructor inicializing lists
|
|
/// </summary>
|
|
protected Process()
|
|
{
|
|
Parts = new List<Part>();
|
|
Worksteps = new List<Workstep>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Constructor used when this process is created
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Create a copy of a process with a new name
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|
|
}
|