Kaynağa Gözat

NEW Creation de la factory EducFacile

olivier.massot 7 yıl önce
ebeveyn
işleme
71bd5f701e

+ 1 - 0
CD67.FicheCollege.Factory/CD67.FicheCollege.Factory.csproj

@@ -70,6 +70,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="EducfEtablissementFactory.cs" />
     <Compile Include="ActionEduFactory.cs" />
     <Compile Include="ActionEduThematiqueFactory.cs" />
     <Compile Include="AnneeFactory.cs" />

+ 187 - 0
CD67.FicheCollege.Factory/EducfEtablissementFactory.cs

@@ -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
+    }
+}