// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Nounours.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-19
//
// ========================================================================
using System;
namespace ex_042_007_EF_CF_One_to_One_FluentAPI
{
///
/// Nounours est une classe POCO, i.e. Plain Old CLR Object.
/// Elle a une relation 1-1 avec la classe CarnetDeSante via la propriété Carnet.
///
public class Nounours
{
public Guid UniqueId
{
get; set;
}
public virtual CarnetDeSante Carnet { get; set; }
public string Nom
{
get;
set;
}
public DateTime DateDeNaissance
{
get;
set;
}
public int NbPoils
{
get;
set;
}
///
/// returns a hash code in order to use this class in hash table
///
/// hash code
public override int GetHashCode()
{
return Nom.GetHashCode();
}
///
/// checks if the "right" object is equal to this Nounours or not
///
/// the other object to be compared with this Nounours
/// true if equals, false if not
public override bool Equals(object right)
{
//check null
if (object.ReferenceEquals(right, null))
{
return false;
}
if (object.ReferenceEquals(this, right))
{
return true;
}
if (this.GetType() != right.GetType())
{
return false;
}
return this.Equals(right as Nounours);
}
///
/// checks if this Nounours is equal to the other Nounours
///
/// the other Nounours to be compared with
/// true if equals
public bool Equals(Nounours other)
{
return (this.Nom.Equals(other.Nom) && this.DateDeNaissance == other.DateDeNaissance);
}
public override string ToString()
{
return $"{UniqueId}: {Nom} ({DateDeNaissance:dd/MM/yyyy}, {NbPoils} poils)";
}
}
}