using Lab.DrawningObjects; using Lab.Entities; using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab { internal class DrawiningTankerEqutables : IEqualityComparer { public bool Equals(DrawTanker? x, DrawTanker? y) { if (x == null || x._gasolineTanker == null) { throw new ArgumentNullException(nameof(x)); } if (y == null || y._gasolineTanker == null) { throw new ArgumentNullException(nameof(y)); } if (x.GetType() != y.GetType()) { return false; } if (x._gasolineTanker.Speed != y._gasolineTanker.Speed) { return false; } if (x._gasolineTanker.Weight != y._gasolineTanker.Weight) { return false; } if (x._gasolineTanker.BodyColor != y._gasolineTanker.BodyColor) { return false; } if (x is DrawGasolineTanker && y is DrawGasolineTanker) { if ((x._gasolineTanker as GasolineTanker).AdditionalColor != (y._gasolineTanker as GasolineTanker).AdditionalColor) { return false; } if ((x._gasolineTanker as GasolineTanker).Wing != (y._gasolineTanker as GasolineTanker).Wing) { return false; } if ((x._gasolineTanker as GasolineTanker).BodyKit != (y._gasolineTanker as GasolineTanker).BodyKit) { return false; } if ((x._gasolineTanker as GasolineTanker).SportLine != (y._gasolineTanker as GasolineTanker).SportLine) { return false; } } return true; } public int GetHashCode([DisallowNull]DrawTanker obj) { return obj.GetHashCode(); } } }