EducfEtablissementFactory.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using CD67.FicheCollege.Entity;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Data.Entity;
  7. using System.Linq.Expressions;
  8. using System.Linq.Dynamic;
  9. namespace CD67.FicheCollege.Factory
  10. {
  11. public class EducfEtablissementFactory : IDisposable
  12. {
  13. /// <summary>
  14. /// Context Entity Framework utilisé dans la classe
  15. /// </summary>
  16. protected EducfEntities dbContext;
  17. #region Constructeurs
  18. /// <summary>
  19. /// Constructeur sans argument pour les classes sans contexts Entity
  20. /// </summary>
  21. public EducfEtablissementFactory() { }
  22. /// <summary>
  23. /// Constructeur avec initialisation du context Entity Framework
  24. /// </summary>
  25. /// <param name="dbContext">Context Entity Framework</param>
  26. public EducfEtablissementFactory(EducfEntities dbContext)
  27. {
  28. this.dbContext = dbContext;
  29. }
  30. #endregion
  31. #region Méthodes génériques
  32. private DbSet<etablissement> ObjectSet
  33. {
  34. get
  35. {
  36. return this.dbContext.Set<etablissement>();
  37. }
  38. }
  39. public virtual etablissement getById(params object[] keyValues)
  40. {
  41. return ObjectSet.Find(keyValues);
  42. }
  43. public virtual etablissement getByRne(string codeRne)
  44. {
  45. return ObjectSet.Where(e => e.numero == codeRne).FirstOrDefault();
  46. }
  47. public virtual etablissement getBy(Expression<Func<etablissement, bool>> expression)
  48. {
  49. return ObjectSet.Where(expression).FirstOrDefault();
  50. }
  51. public virtual etablissement getBy(string dynamicExpression)
  52. {
  53. return ObjectSet.Where(dynamicExpression).FirstOrDefault();
  54. }
  55. public virtual IQueryable<etablissement> getAll()
  56. {
  57. return getAll(null);
  58. }
  59. public virtual IQueryable<etablissement> getAll(string sortParameter = null)
  60. {
  61. if (sortParameter != null) return ObjectSet.OrderBy(sortParameter);
  62. else return ObjectSet;
  63. }
  64. public virtual IQueryable<etablissement> getManyBy(Expression<Func<etablissement, bool>> expression, string sortParameter = null)
  65. {
  66. IQueryable<etablissement> query = ObjectSet.Where(expression);
  67. if (sortParameter != null) query = query.OrderBy(sortParameter);
  68. return query;
  69. }
  70. public virtual IQueryable<etablissement> getManyBy(string dynamicExpression, string sortParameter = null)
  71. {
  72. IQueryable<etablissement> query = ObjectSet.Where(dynamicExpression);
  73. if (sortParameter != null) query = query.OrderBy(sortParameter);
  74. return query;
  75. }
  76. #endregion
  77. #region Dispose
  78. private bool disposed = false;
  79. /// <summary>
  80. /// Fonction pour détruire proprement la classe après utilisation
  81. /// </summary>
  82. /// <param name="disposing"></param>
  83. protected virtual void Dispose(bool disposing)
  84. {
  85. if (!this.disposed)
  86. {
  87. if (disposing)
  88. {
  89. dbContext.Dispose();
  90. }
  91. }
  92. this.disposed = true;
  93. }
  94. /// <summary>
  95. /// Fonction pour détruire proprement la classe après utilisation
  96. /// </summary>
  97. public void Dispose()
  98. {
  99. Dispose(true);
  100. GC.SuppressFinalize(this);
  101. }
  102. #endregion
  103. }
  104. }