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.

167 lines
4.9 KiB

/*!
* \file Theque.cs
* \author Léana Besson
*/
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
/*!
* \namespace Model
*/
namespace Model
{
/*!
* \class Theque
* \brief Regroups all the species and animals as well as the functions to make it work
*/
[DataContract(Name = "theque")]
public class Theque
{
[DataMember(Name = "especes")]
public List<Espece> ListeEspeces { get; set; }
[DataMember(Name = "animaux")]
public ObservableCollection<Animal> ListeAnimaux { get; set; }
/*!
* \fn Theque()
* \brief Theque class constructor
*/
public Theque()
{
ListeEspeces = new List<Espece>();
ListeAnimaux = new ObservableCollection<Animal>();
}
/*!
* \fn AjouterAnimal()
* \brief Add an animal to the animal list
* \return Animal - Animal add to list
*/
public Animal AjouterAnimal()
{
Animal animal = new Animal();
ListeAnimaux.Add(animal);
return animal;
}
/*!
* \fn SupprimerAnimal(Animal animal)
* \brief Remove animal from animal list
* \param animal Animal - Animal to remove from list
*/
public void SupprimerAnimal(Animal animal)
{
ListeAnimaux.Remove(animal);
}
/*!
* \fn RechercherAnimal(string? choix)
* \brief Retrieves each animal from the animal list and checks whether the animal's name matches the name searched for
* \param choix string? - Name of pet wanted
* \return Animal? - Pet wanted or null if not found
*/
public Animal? RechercherAnimal(string? choix)
{
foreach (Animal animal in ListeAnimaux)
{
if (animal.Nom == choix)
{
return animal;
}
}
return null;
}
/*!
* \fn RechercherEspece(string? choix)
* \brief Retrieves each species from the species list and checks whether the species name and the name searched for are identical
* \param choix string? - Name of species wanted
* \return Espece? - Species wanted or null if not found
*/
public Espece? RechercherEspece(string? choix)
{
foreach (Espece espece in ListeEspeces)
{
if (espece.Nom == choix)
{
return espece;
}
}
return null;
}
/*!
* \fn IntValidate(string? response)
* \brief Checks whether the string is null or convertible to an integer
* \param response string? - Character string to check
* \return bool - True if null or convertible and False if not
*/
public static bool IntValidate(string? response)
{
if (response == null)
return true;
else
{
try
{
int number = Convert.ToInt32(response);
return true;
}
catch (Exception ex)
{
return false;
}
}
}
/*!
* \fn FloatValidate(string? response)
* \brief Checks whether the string is null or convertible to a float
* \param response string? - Character string to check
* \return bool - True if null or convertible and False if not
*/
public static bool FloatValidate(string? response)
{
if (response == null)
return true;
else
{
try
{
float numFloat = Convert.ToSingle(response);
return true;
}
catch (Exception ex)
{
return false;
}
}
}
/*!
* \fn DateTimeValidate(string? response)
* \brief Checks whether the string is null or convertible to a DateTime
* \param response string? - Character string to check
* \return True if null or convertible and False if not
*/
public static bool DateTimeValidate(string? response)
{
if (response == null)
return true;
else
{
try
{
DateTime date = Convert.ToDateTime(response);
return true;
}
catch (Exception ex)
{
return false;
}
}
}
}
}