예제 #1
0
        public JsonResult ProductData(int? page, bool _search, Product searchProduct)
        {
            var list = _repository.GetProducts();

            if (_search)
            {
                list = list.WhereFilter(searchProduct);
            }

            // постраничная выборка данных
            var data = list
                        .Skip((page - 1 ?? 0) * PageSize)
                        .Take(PageSize)
                        .ToList();

            // формирование ответа в формате JSON
            var result = new JsonResult
                             {
                                 Data = new
                                 {
                                     page,
                                     total = Math.Ceiling((double)list.Count() / PageSize),
                                     records = list.Count(),
                                     rows = data
                                 }
                             };

            return result;
        }
예제 #2
0
        public JsonResult ProductData(int? page, bool _search, Product searchProduct)
        {
            var list = _repository.GetProducts();

            // флаг установлен в случае наличия значений в фильтре
            if (_search)
            {
                if (null != searchProduct.ProductId)
                    list = list.Where(x => searchProduct.ProductId == x.ProductId);

                if (!String.IsNullOrEmpty(searchProduct.ProductName))
                    list = list.Where(x => x.ProductName == searchProduct.ProductName);

                if (!String.IsNullOrEmpty(searchProduct.Category))
                    list = list.Where(x => x.Category == searchProduct.Category);

                if (!String.IsNullOrEmpty(searchProduct.Supplier))
                    list = list.Where(x => x.Supplier == searchProduct.Supplier);

                if (null != searchProduct.UnitPrice)
                    list = list.Where(x => x.UnitPrice == searchProduct.UnitPrice);

                if (null != searchProduct.UnitsInStock)
                    list = list.Where(x => x.UnitsInStock == searchProduct.UnitsInStock);

                if (!String.IsNullOrEmpty(searchProduct.EnglishName))
                    list = list.Where(x => x.EnglishName == searchProduct.EnglishName);
            }

            // постраничная выборка данных
            var data = list
                        .Skip((page - 1 ?? 0) * PageSize)
                        .Take(PageSize)
                        .ToList();

            // формирование ответа в формате JSON
            var result = new JsonResult
                             {
                                 Data = new
                                 {
                                     page,
                                     total = Math.Ceiling((double)list.Count() / PageSize),
                                     records = list.Count(),
                                     rows = data
                                 }
                             };

            return result;
        }