INNER CODE UNIT · C#
EnclosureEqualityComparer
BlueshiftSoftware/EntityFrameworkCore · src/Blueshift.EntityFrameworkCore.MongoDB.SampleDomain/_Comparers.cs:100
public class EnclosureEqualityComparer : BaseEqualityComparer<Enclosure>
{
private AnimalEqualityComparer _animalEqualityComparer = null;
private readonly ScheduleEqualityComparer _scheduleEqualityComparer
= new ScheduleEqualityComparer();
protected override bool MemberwiseEquals(Enclosure enclosure1, Enclosure enclosure2)
=> Equals(enclosure1.EnclosureId, enclosure2.EnclosureId)
&& string.Equals(enclosure1.Name, enclosure2.Name, StringComparison.Ordinal)
&& string.Equals(enclosure1.AnimalEnclosureType, enclosure2.AnimalEnclosureType, StringComparison.Ordinal)
&& (_animalEqualityComparer?.CompareCollections(enclosure1.Animals, enclosure2.Animals) ?? true)
&& (_scheduleEqualityComparer?.Equals(enclosure1.WeeklySchedule, enclosure2.WeeklySchedule) ?? true);
public EnclosureEqualityComparer WithAnimalEqualityComparer(Action<AnimalEqualityComparer> configurator = null)
{
_animalEqualityComparer = new AnimalEqualityComparer();
configurator?.Invoke(_animalEqualityComparer);
return this;