PIbd-21_KozyrevSS_GasolineT.../Lab/DrawiningTankerEqutables.cs

68 lines
2.1 KiB
C#
Raw Normal View History

2023-12-17 15:10:01 +04:00
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<DrawTanker?>
{
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();
}
}
}