|
|
@@ -0,0 +1,187 @@
|
|
|
+using CD67.FicheCollege.Entity;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Data.Entity;
|
|
|
+using System.Linq.Expressions;
|
|
|
+using System.Linq.Dynamic;
|
|
|
+
|
|
|
+namespace CD67.FicheCollege.Factory
|
|
|
+{
|
|
|
+ public class EducfEtablissementFactory : IDisposable
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ /// Context Entity Framework utilisé dans la classe
|
|
|
+ /// </summary>
|
|
|
+ protected EducfEntities dbContext;
|
|
|
+
|
|
|
+ #region Constructeurs
|
|
|
+ /// <summary>
|
|
|
+ /// Constructeur sans argument pour les classes sans contexts Entity
|
|
|
+ /// </summary>
|
|
|
+ public EducfEtablissementFactory() { }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Constructeur avec initialisation du context Entity Framework
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dbContext">Context Entity Framework</param>
|
|
|
+ public EducfEtablissementFactory(EducfEntities dbContext)
|
|
|
+ {
|
|
|
+ this.dbContext = dbContext;
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region Méthodes génériques
|
|
|
+ private DbSet<etablissement> ObjectSet
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return this.dbContext.Set<etablissement>();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual etablissement getById(params object[] keyValues)
|
|
|
+ {
|
|
|
+ return ObjectSet.Find(keyValues);
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual etablissement getByRne(string codeRne)
|
|
|
+ {
|
|
|
+ return ObjectSet.Where(e => e.numero == codeRne).FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual etablissement getBy(Expression<Func<etablissement, bool>> expression)
|
|
|
+ {
|
|
|
+ return ObjectSet.Where(expression).FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual etablissement getBy(string dynamicExpression)
|
|
|
+ {
|
|
|
+ return ObjectSet.Where(dynamicExpression).FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public virtual IQueryable<etablissement> getAll()
|
|
|
+ {
|
|
|
+ return getAll(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual IQueryable<etablissement> getAll(string sortParameter = null)
|
|
|
+ {
|
|
|
+ if (sortParameter != null) return ObjectSet.OrderBy(sortParameter);
|
|
|
+ else return ObjectSet;
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual IQueryable<etablissement> getManyBy(Expression<Func<etablissement, bool>> expression, string sortParameter = null)
|
|
|
+ {
|
|
|
+ IQueryable<etablissement> query = ObjectSet.Where(expression);
|
|
|
+ if (sortParameter != null) query = query.OrderBy(sortParameter);
|
|
|
+ return query;
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual IQueryable<etablissement> getManyBy(string dynamicExpression, string sortParameter = null)
|
|
|
+ {
|
|
|
+ IQueryable<etablissement> query = ObjectSet.Where(dynamicExpression);
|
|
|
+ if (sortParameter != null) query = query.OrderBy(sortParameter);
|
|
|
+ return query;
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void add(ref etablissement entity)
|
|
|
+ {
|
|
|
+ ObjectSet.Add(entity);
|
|
|
+ dbContext.SaveChanges();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void addMany(ref List<etablissement> entities)
|
|
|
+ {
|
|
|
+ ObjectSet.AddRange(entities);
|
|
|
+ dbContext.SaveChanges();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void update(ref etablissement entity)
|
|
|
+ {
|
|
|
+ // On attache l'objet en paramètre au contexte, on le note bien comme modifié pour qu'il soit mis à jour
|
|
|
+ ObjectSet.Attach(entity);
|
|
|
+ dbContext.Entry(entity).State = EntityState.Modified;
|
|
|
+ dbContext.SaveChanges();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void updateMany(ref List<etablissement> entities)
|
|
|
+ {
|
|
|
+ foreach (var item in entities)
|
|
|
+ {
|
|
|
+ // On attache l'objet en paramètre au contexte, on le note bien comme modifié pour qu'il soit mis à jour
|
|
|
+ ObjectSet.Attach(item);
|
|
|
+ dbContext.Entry(item).State = EntityState.Modified;
|
|
|
+ }
|
|
|
+ dbContext.SaveChanges();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void updateMany(Expression<Func<etablissement, bool>> expression)
|
|
|
+ {
|
|
|
+ List<etablissement> query = ObjectSet.Where(expression).ToList();
|
|
|
+ this.updateMany(ref query);
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void updateMany(string dynamicExpression)
|
|
|
+ {
|
|
|
+ List<etablissement> query = ObjectSet.Where(dynamicExpression).ToList();
|
|
|
+ this.updateMany(ref query);
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void delete(ref etablissement entity)
|
|
|
+ {
|
|
|
+ ObjectSet.Remove(entity);
|
|
|
+ dbContext.SaveChanges();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void deleteMany(ref List<etablissement> entities)
|
|
|
+ {
|
|
|
+ ObjectSet.RemoveRange(entities);
|
|
|
+ dbContext.SaveChanges();
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void deleteMany(Expression<Func<etablissement, bool>> expression)
|
|
|
+ {
|
|
|
+ List<etablissement> query = ObjectSet.Where(expression).ToList();
|
|
|
+ this.deleteMany(ref query);
|
|
|
+ }
|
|
|
+
|
|
|
+ public virtual void deleteMany(string dynamicExpression)
|
|
|
+ {
|
|
|
+ List<etablissement> query = ObjectSet.Where(dynamicExpression).ToList();
|
|
|
+ this.deleteMany(ref query);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region Dispose
|
|
|
+ private bool disposed = false;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Fonction pour détruire proprement la classe après utilisation
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="disposing"></param>
|
|
|
+ protected virtual void Dispose(bool disposing)
|
|
|
+ {
|
|
|
+ if (!this.disposed)
|
|
|
+ {
|
|
|
+ if (disposing)
|
|
|
+ {
|
|
|
+ dbContext.Dispose();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.disposed = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Fonction pour détruire proprement la classe après utilisation
|
|
|
+ /// </summary>
|
|
|
+ public void Dispose()
|
|
|
+ {
|
|
|
+ Dispose(true);
|
|
|
+ GC.SuppressFinalize(this);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
+}
|