Files
cms_thermo_active/Step.Model/DTOModels/DTOProcessDataModel.cs
T
2018-03-27 17:15:08 +02:00

79 lines
2.1 KiB
C#

using System.Collections.Generic;
using System.Linq;
using static CMS_CORE_Library.DataStructures;
namespace Step.Model.DTOModels
{
public class DTOProcessesDataModel
{
public bool isRunning;
public ushort selectedProcess;
public byte selectedAxis;
public List<ProcessModel> processes;
public DTOProcessesDataModel()
{
isRunning = false;
processes = new List<ProcessModel>();
}
public override bool Equals(object obj)
{
var item = obj as DTOProcessesDataModel;
// Object is not a DTOProcessDataModel instance
if (item == null)
return false;
if (isRunning != item.isRunning)
return false;
if (selectedProcess != item.selectedProcess)
return false;
if (selectedAxis != item.selectedAxis)
return false;
// If the numbers of the list's elemets are different, lists are different
if (item.processes.Count != processes.Count)
return false;
// Check list's elements
bool listAreEquals = item.processes.All(processes.Contains);
if (!listAreEquals)
return false;
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class ProcessModel : ProcessDataModel
{
public override bool Equals(object obj)
{
var item = obj as ProcessModel;
if (item == null)
return false;
if (Id != item.Id)
return false;
if (Type != item.Type ||
IsInAlarm != item.IsInAlarm ||
PartProgramName != item.PartProgramName ||
Status != item.Status ||
Visible != item.Visible ||
Reps != item.Reps)
return false;
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}