using AsbCloudApp.Data; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace AsbCloudApp.Comparators { /// /// Компаратор для сравнения сущностей по ID /// public class ComparerIId : IComparer, IEqualityComparer { private static readonly ComparerIId instance = new(); private ComparerIId() { } /// /// Singleton ссылка /// /// public static ComparerIId GetInstance() => instance; /// /// /// /// /// /// public int Compare(IId? x, IId? y) { if (x is null || y is null) return 0; else return x.Id.CompareTo(y.Id); } /// /// /// /// /// /// public bool Equals(IId? x, IId? y) { if (x is null || y is null) return false; else return x.Id == y.Id; } /// /// /// /// /// public int GetHashCode([DisallowNull] IId obj) => obj.GetHashCode(); } }