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