77 lines
2.0 KiB
C#
77 lines
2.0 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 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();
|
|
}
|
|
}
|
|
} |