public async Task <PagedCollections <Fuel> > GetNumberItems(Func <Fuel, bool> predicate, int page = 1, string sort = "", int pageSize = 18) { IEnumerable <Fuel> fuels; using (var toplivoContext = new ToplivoContext()) { fuels = await Task.FromResult(toplivoContext.Fuels.SqlQuery("Select * from Fuels").ToList()); } //var fuels = await _fuelRepository.GetAllAsync(); fuels = fuels.Where(predicate).OrderBy(o => o.FuelType); int totalitems = fuels.Count(); //int totalitems = fuels.Where(predicate).Count(); if ((int)Math.Ceiling((decimal)totalitems / pageSize) < page) { page = 1; } ; if (page != 0) { fuels = fuels.Skip((page - 1) * pageSize).Take(pageSize); } ; PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = totalitems }; PagedCollections <Fuel> viewtanks = new PagedCollections <Fuel> { PageInfo = pageInfo, PagedItems = fuels }; return(viewtanks); }
//Делегат Predicate<T>, как правило, используется для сравнения, //сопоставления некоторого объекта T определенному условию. //В качестве выходного результата возвращается значение true, если условие соблюдено, и false, //если не соблюдено //Еще одним распространенным делегатом является Func. Он возвращает результат действия и может принимать //параметры. Он также имеет различные формы: //от Func<out T>(), где T - тип возвращаемого значения, до Func<in T1, in T2,...in T16, out TResult>(), //то есть может принимать до 16 параметров. //Возвращает коллекцию объектов, удовлетворяющих заданному условию public async Task <IEnumerable <T> > FindAsync(Func <T, bool> predicate) { IEnumerable <T> result = null; using (var toplivoContext = new ToplivoContext()) { result = toplivoContext.Set <T>().Where(predicate); } return(await Task.FromResult(result)); }
public async Task <T> UpdateAsync(T item) { using (var toplivoContext = new ToplivoContext()) { toplivoContext.Entry(item).State = EntityState.Modified; await toplivoContext.SaveChangesAsync(); } return(item); }
public async Task <IEnumerable <T> > GetAllAsync() { var result = new List <T>(); using (var toplivoContext = new ToplivoContext()) { result = await toplivoContext.Set <T>().ToListAsync(); } return(result); }
public async Task <T> GetAsync(int id) { T result = null; //когда есть using до вызывается метод dispoze using (var toplivoContext = new ToplivoContext()) { //result = (toplivoContext.Set<T>().Find(id)); result = await toplivoContext.Set <T>().FindAsync(id); } return(result); }
//сохранение public async Task <T> CreateAsync(T item) { T result = null; using (var toplivoContext = new ToplivoContext()) { result = toplivoContext.Set <T>().Add(item); await toplivoContext.SaveChangesAsync(); } return(result); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); UnityConfig.Initialise(); //Инициализация БД путем выполнения кода в классе инициализатора с использование методов EF Database.SetInitializer(new ToplivoDbInitializer()); using (var db = new ToplivoContext()) { db.Database.Initialize(true); } }
//удаление public async Task DeleteAsync(int id) { using (var toplivoContext = new ToplivoContext()) { var t = await toplivoContext.Set <T>().FindAsync(id); if (t != null) { toplivoContext.Entry(t).State = EntityState.Deleted; //вариант //toplivoContext.Set<T>().Remove(t); await toplivoContext.SaveChangesAsync(); } } }