コード例 #1
0
 public TEntity Select(int id)
 {
     using (var context = new MoneyStatsContext())
     {
         return(context.Set <TEntity>().ToList().SingleOrDefault(x => x.Id == id && x.IsActive));
     }
 }
コード例 #2
0
        public bool UpdateMany(List <TEntity> entities)
        {
            using (var context = new MoneyStatsContext())
            {
                // Set each
                var i = 0;
                foreach (var entity in entities)
                {
                    var obj = context.Set <TEntity>().SingleOrDefault(x => x.Id == entity.Id);
                    if (obj != null)
                    {
                        // Update values
                        context.Entry(obj).CurrentValues.SetValues(entity);

                        // Update modified date
                        obj.ModifiedDate = DateTime.Now;

                        i++;
                    }
                }

                // Save changes
                if (i > 0)
                {
                    context.SaveChanges();
                    return(true);
                }

                return(false);
            }
        }
コード例 #3
0
 public IEnumerable <TEntity> ForceGet()
 {
     using (var context = new MoneyStatsContext())
     {
         return(context.Set <TEntity>().ToList());
     }
 }
コード例 #4
0
 public IEnumerable <TEntity> Get()
 {
     using (var context = new MoneyStatsContext())
     {
         // TODO "context.Set<TEntity>().ToList().Where(x => x.IsActive);" works, but why do we need it?
         return(context.Set <TEntity>().ToList().Where(x => x.IsActive));
     }
 }
コード例 #5
0
        public bool Destroy(int id)
        {
            using (var context = new MoneyStatsContext())
            {
                var obj = context.Set <TEntity>().SingleOrDefault(x => x.Id == id);

                if (obj != null)
                {
                    context.Set <TEntity>().Remove(obj);
                    context.SaveChanges();
                    return(true);
                }

                // TODO log or throw
                return(false);
            }
        }
コード例 #6
0
        public bool DestroyRange(IEnumerable <int> ids)
        {
            using (var context = new MoneyStatsContext())
            {
                var objs = (from e in context.Set <TEntity>()
                            where ids.Contains(e.Id)
                            select e).ToList();

                if (objs.Count == 0)
                {
                    // TODO log or throw
                    return(false);
                }

                context.Set <TEntity>().RemoveRange(objs);
                context.SaveChanges();
                return(true);
            }
        }
コード例 #7
0
        public TEntity Insert(TEntity entity)
        {
            using (var context = new MoneyStatsContext())
            {
                entity.SetNew();

                context.Set <TEntity>().Add(entity);
                context.SaveChanges();
                return(entity);
            }
        }
コード例 #8
0
        public bool Update(TEntity entity)
        {
            using (var context = new MoneyStatsContext())
            {
                var obj = context.Set <TEntity>().SingleOrDefault(x => x.Id == entity.Id);

                if (obj != null)
                {
                    context.Entry(obj).CurrentValues.SetValues(entity);
                    obj.ModifiedDate = DateTime.Now;
                    context.SaveChanges();
                    return(true);
                }

                // TODO log or throw
                return(false);
            }
        }
コード例 #9
0
        public bool Delete(int id)
        {
            using (var context = new MoneyStatsContext())
            {
                var obj = context.Set <TEntity>().ToList().SingleOrDefault(x => x.Id == id && x.IsActive);

                if (obj != null)
                {
                    obj.ModifiedDate = DateTime.Now;
                    obj.State        = 0;
                    context.SaveChanges();
                    return(true);
                }

                // TODO log or throw
                return(false);
            }
        }
コード例 #10
0
        public IEnumerable <TEntity> InsertRange(IEnumerable <TEntity> entities)
        {
            if (!entities.Any())
            {
                return(entities);
            }

            using (var context = new MoneyStatsContext())
            {
                foreach (var item in entities)
                {
                    item.SetNew();
                }

                context.Set <TEntity>().AddRange(entities);
                context.SaveChanges();
                return(entities);
            }
        }