Restauration.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace CG67.FicheCollege.Domaine
  5. {
  6. public delegate IList<RestaurationExterne> dlgLoadRestaurationExterne(string codeRNE, int annee);
  7. [Serializable]
  8. public class Restauration
  9. {
  10. private dlgLoadRestaurationExterne LoaderRestaurationExterne;
  11. private string mCodeRNE;
  12. private int mAnnee;
  13. /// <summary>
  14. /// Nombre total de rationnaire.
  15. /// </summary>
  16. private int mNbrPersonnes;
  17. /// <summary>
  18. /// Liste de restaurations externes,
  19. /// si cette liste à pour valeur null, c'est que l'établissement dispose d'une cantine
  20. /// sinon cette liste regroupera tous les types de restauration externes utilisés
  21. /// (télérestauration, hébergement, ...)
  22. /// </summary>
  23. private IList<RestaurationExterne> mLstRestaurationExterne;
  24. /// <summary>
  25. /// Obtient ou définit le nombre total de rationnaire.
  26. /// </summary>
  27. public int NbrPersonnes
  28. {
  29. get { return mNbrPersonnes; }
  30. set { mNbrPersonnes = value; }
  31. }
  32. /// <summary>
  33. /// Obtient ou définit la liste de restaurations externes.
  34. /// </summary>
  35. public IList<RestaurationExterne> LstRestaurationExterne
  36. {
  37. get {
  38. if (mLstRestaurationExterne == null)
  39. mLstRestaurationExterne = this.LoaderRestaurationExterne(mCodeRNE, mAnnee);
  40. return mLstRestaurationExterne;
  41. }
  42. set { mLstRestaurationExterne = value; }
  43. }
  44. public Restauration(int annee, string codeRNE, int nbrPersonnes, dlgLoadRestaurationExterne loaderRestaurationExterne)
  45. {
  46. this.mAnnee = annee;
  47. this.mNbrPersonnes = nbrPersonnes;
  48. this.mCodeRNE = codeRNE;
  49. this.LoaderRestaurationExterne = loaderRestaurationExterne;
  50. }
  51. public override string ToString()
  52. {
  53. string retour = NbrPersonnes + " rationnaires";
  54. if (LstRestaurationExterne.Count == 0)
  55. retour += ". \nL'établissement dispose d'une restauration interne.";
  56. else
  57. {
  58. int nbrAide = 0;
  59. string retourAide = string.Empty;
  60. foreach (RestaurationExterne restaur in LstRestaurationExterne)
  61. {
  62. retourAide += "\n - " + restaur.NbrPersonnes + " " + restaur.TypeRestauration + " par l'établissement " + restaur.NomCollege + ".";
  63. nbrAide += restaur.NbrPersonnes;
  64. }
  65. retour += " : ";
  66. int difference = NbrPersonnes - nbrAide;
  67. if (difference != 0)
  68. retour += "\n - L'établissement ne dispose pas d'une restauration suffisante, de ce fait uniquement " + difference + " élèves sont réstaurés en interne.";
  69. retour += retourAide;
  70. }
  71. return retour;
  72. }
  73. }
  74. }