Пример #1
0
        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);
        }
Пример #2
0
        //Делегат 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));
        }
Пример #3
0
        public async Task <T> UpdateAsync(T item)
        {
            using (var toplivoContext = new ToplivoContext())
            {
                toplivoContext.Entry(item).State = EntityState.Modified;
                await toplivoContext.SaveChangesAsync();
            }

            return(item);
        }
Пример #4
0
        public async Task <IEnumerable <T> > GetAllAsync()
        {
            var result = new List <T>();

            using (var toplivoContext = new ToplivoContext())
            {
                result = await toplivoContext.Set <T>().ToListAsync();
            }

            return(result);
        }
Пример #5
0
        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);
        }
Пример #6
0
        //сохранение
        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);
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        //удаление
        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();
                }
            }
        }