You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

294 lines
7.5 KiB

/*! \file Animal.cs
* \author Léana Besson
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
/*! \namespace Model
*/
namespace Model
{
/*! \class Animal
* \brief
*/
[DataContract(Name = "animal")]
public class Animal : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
[DataMember(Name = "nom")]
public string? Nom
{
get => nom;
set
{
if (nom == value)
return;
nom = value;
NomIsValid = NomValidate(nom);
OnPropertyChanged(nameof(Nom));
}
}
private string? nom;
[DataMember(Name = "nomValid")]
public bool NomIsValid
{
get => nomIsValid;
set
{
if (nomIsValid == value)
return;
nomIsValid = value;
OnPropertyChanged(nameof(NomIsValid));
}
}
private bool nomIsValid;
[DataMember(Name = "naissance")]
public DateTime? DateNaissance
{
get => dateNaissance;
set
{
if (dateNaissance == value)
return;
dateNaissance = value;
OnPropertyChanged(nameof(DateNaissance));
}
}
private DateTime? dateNaissance;
[DataMember(Name = "sexe")]
public string? Sexe
{
get => sexe;
set {
if (sexe == value)
return;
sexe = value;
OnPropertyChanged(nameof(Sexe));
}
}
private string? sexe;
[DataMember(Name = "adoption")]
public DateTime? DateAdoption
{
get => dateAdoption;
set
{
if (dateAdoption == value)
return;
dateAdoption = value;
OnPropertyChanged(nameof(DateAdoption));
}
}
private DateTime? dateAdoption;
[DataMember(Name = "taille")]
public float? Taille
{
get => taille;
set
{
if (taille == value)
return;
taille = value;
OnPropertyChanged(nameof(Taille));
}
}
private float? taille;
[DataMember(Name = "poids")]
public float? Poids
{
get => poids;
set
{
if (poids == value)
return;
poids = value;
OnPropertyChanged(nameof(Poids));
}
}
private float? poids;
[DataMember(Name = "alimentation")]
public string? Alimentation
{
get => alimentation;
set
{
if (alimentation == value)
return;
alimentation = value;
OnPropertyChanged(nameof(Alimentation));
}
}
private string? alimentation;
[DataMember(Name = "espece")]
public Espece? Espece
{
get => espece;
set
{
if (espece == value)
return;
espece = value;
OnPropertyChanged(nameof(Espece));
}
}
private Espece? espece;
[DataMember(Name = "race")]
public Race? Race
{
get => race;
set
{
if(race == value)
return;
race = value;
OnPropertyChanged(nameof(Race));
}
}
private Race? race;
[DataMember(Name = "veterinaire")]
public Veterinaire? Veterinaire
{
get => veterinaire;
set
{
if(veterinaire == value)
return;
veterinaire = value;
OnPropertyChanged(nameof(Veterinaire));
}
}
private Veterinaire? veterinaire;
[DataMember(Name = "chenil")]
public Entite? Chenil
{
get => chenil;
set
{
if (chenil == value)
return;
chenil = value;
OnPropertyChanged(nameof(Chenil));
}
}
private Entite? chenil;
[DataMember(Name = "magasin")]
public Entite? MagasinAlimentaire
{
get => magasinAlimentaire;
set
{
if (magasinAlimentaire == value)
return;
magasinAlimentaire = value;
OnPropertyChanged(nameof(MagasinAlimentaire));
}
}
private Entite? magasinAlimentaire;
[DataMember(Name = "provenance")]
public Entite? Provenance
{
get => provenance;
set
{
if (provenance == value)
return;
provenance = value;
OnPropertyChanged(nameof(Petsitter));
}
}
private Entite? provenance;
[DataMember(Name = "petsitter")]
public Entite? Petsitter
{
get => petsitter;
set
{
if (petsitter == value)
return;
petsitter = value;
OnPropertyChanged(nameof(Petsitter));
}
}
private Entite? petsitter;
[DataMember(Name = "image")]
public string? Image
{
get => image;
set
{
if (image == value)
return;
image = value;
OnPropertyChanged(nameof(Image));
}
}
private string? image;
public Animal()
{
Nom = "";
NomIsValid = false;
DateNaissance = DateTime.MinValue;
Sexe = "";
DateAdoption = DateTime.MinValue;
Taille = null;
Poids = null;
Alimentation = "";
Espece = null;
Race = null;
Veterinaire = new Veterinaire();
Chenil = new Entite();
MagasinAlimentaire = new Entite();
Provenance = new Entite();
Petsitter = new Entite();
Image = "";
}
/*! \brief
* \param propertyName string -
* \return bool -
*/
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
/*! \brief
* \return bool -
*/
public bool NomValidate(string? nom)
{
if (nom == null || nom.Length <= 0 || nom.StartsWith(" ")) return false;
return true;
}
}
}