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)); }
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()); } }
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()); } }
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)); } }
public void RemoveEntity <T>(T entity) { using (DBContext context = new HotelReservationsContext()) { context.Remove(entity); context.SaveChanges(); OnDBChange?.Invoke(context, typeof(T)); } }
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()); } }
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)); }