コード例 #1
0
        public Result InsertEntity <T>(T item, bool ignoreValidation = false) where T : class
        {
            using (DBContext context = new HotelReservationsContext())
            {
                if (ContainsEntity(item, context))
                {
                    return(new Result(ResultType.ALREADY_IN_DATABASE));
                }
                // validate item if needed
                if (!ignoreValidation)
                {
                    Result result = Validate(item);
                    if (result.type != ResultType.SUCCESS)
                    {
                        return(result);
                    }
                }

                // add item
                context.Add(item);
                context.SaveChanges();
                OnDBChange?.Invoke(context, typeof(T));
            }
            return(new Result(ResultType.SUCCESS));
        }
コード例 #2
0
 public static List <Reservations> AllReservations(this DataConnection _)
 {
     using (HotelReservationsContext context = new HotelReservationsContext())
     {
         return(context.Set <Reservations>().Include(reservation => reservation.Room).Include(reservation => reservation.Customer).ToList());
     }
 }
コード例 #3
0
 public T GetFirstEntytiWithFilter <T>(Expression <Func <T, bool> > filter) where T : class
 {
     using (DBContext context = new HotelReservationsContext())
     {
         var table = context.Set <T>();
         return(table.Where <T>(filter).FirstOrDefault());
     }
 }
コード例 #4
0
 public IQueryable <T> GetEntitiesWithFilter <T>(Expression <Func <T, bool> > filter) where T : class
 {
     using (DBContext context = new HotelReservationsContext())
     {
         var table = context.Set <T>();
         return(table.Where <T>(filter));
     }
 }
コード例 #5
0
 public void RemoveEntity <T>(T entity)
 {
     using (DBContext context = new HotelReservationsContext())
     {
         context.Remove(entity);
         context.SaveChanges();
         OnDBChange?.Invoke(context, typeof(T));
     }
 }
コード例 #6
0
 public int GetTableCount <T>() where T : class
 {
     using (DBContext context = new HotelReservationsContext())
     {
         var table = context.Set <T>();
         if (table == null)
         {
             return(-1);
         }
         return(table.Count());
     }
 }
コード例 #7
0
        public Result EditEntity <T>(T entity) where T : class
        {
            using (DBContext context = new HotelReservationsContext())
            {
                if (!ContainsEntity(entity, context))
                {
                    return(new Result(ResultType.NOT_IN_DATABASE));
                }

                Result result = Validate(entity);
                if (result.type != ResultType.SUCCESS)
                {
                    return(result);
                }
                context.Update(entity);
                context.SaveChanges();
                OnDBChange?.Invoke(context, typeof(T));
            }

            return(new Result(ResultType.SUCCESS));
        }