public IActionResult Index(ProductsReportAjaxIndexViewModel viewModel) { if (ModelState.IsValid) { var page = new PageModel() { PageNumber = viewModel.PageNumber, RecordsPerPageCount = AppSettings.RecordsPerPageCount }; // Sıralama #region Ordering var order = new OrderModel() { Expression = viewModel.OrderByExpression, DirectionAscending = viewModel.OrderByDirectionAscending }; #endregion var result = _productService.GetProductsReport(viewModel.ProductsFilter, page, order); if (result.Status == ResultStatus.Exception) { throw new Exception(result.Message); } viewModel.ProductsReport = result.Data; #region Paging double recordsCount = page.RecordsCount; // filtrelenmiş veya filtrelenmemiş toplam kayıt sayısı double recordsPerPageCount = page.RecordsPerPageCount; // sayfa başına kayıt sayısı double totalPageCount = Math.Ceiling(recordsCount / recordsPerPageCount); // toplam sayfa sayısı List <SelectListItem> pageSelectListItems = new List <SelectListItem>(); if (totalPageCount == 0) { pageSelectListItems.Add(new SelectListItem() { Value = "1", Text = "1" }); } else { for (int pageNumber = 1; pageNumber <= totalPageCount; pageNumber++) { pageSelectListItems.Add(new SelectListItem() { Value = pageNumber.ToString(), Text = pageNumber.ToString() }); } } #endregion viewModel.Pages = new SelectList(pageSelectListItems, "Value", "Text", viewModel.PageNumber); } // Categories artık view component üzerinden kullanıldığı için tekrar doldurmaya gerek yok //viewModel.Categories = new SelectList(_categoryService.Query().ToList(), "Id", "Name", viewModel.ProductsFilter.CategoryId); return(PartialView("_ProductsReport", viewModel)); }
//public IActionResult Index() public IActionResult Index(int?categoryId) { //var productsFilter = new ProductsReportFilterModel(); var productsFilter = new ProductsReportFilterModel() { CategoryId = categoryId }; var page = new PageModel() { RecordsPerPageCount = AppSettings.RecordsPerPageCount }; var result = _productService.GetProductsReport(productsFilter, page); if (result.Status == ResultStatus.Exception) { throw new Exception(result.Message); } var productsReport = result.Data; #region Paging double recordsCount = page.RecordsCount; // filtrelenmiş veya filtrelenmemiş toplam kayıt sayısı double recordsPerPageCount = page.RecordsPerPageCount; // sayfa başına kayıt sayısı double totalPageCount = Math.Ceiling(recordsCount / recordsPerPageCount); // toplam sayfa sayısı List <SelectListItem> pageSelectListItems = new List <SelectListItem>(); if (totalPageCount == 0) { pageSelectListItems.Add(new SelectListItem() { Value = "1", Text = "1" }); } else { for (int pageNumber = 1; pageNumber <= totalPageCount; pageNumber++) { pageSelectListItems.Add(new SelectListItem() { Value = pageNumber.ToString(), Text = pageNumber.ToString() }); } } #endregion var viewModel = new ProductsReportAjaxIndexViewModel() { ProductsReport = productsReport, ProductsFilter = productsFilter, Pages = new SelectList(pageSelectListItems, "Value", "Text"), // Categories artık view component üzerinden kullanıldığı için tekrar doldurmaya gerek yok //Categories = new SelectList(_categoryService.Query().ToList(), "Id", "Name") }; return(View(viewModel)); }