/// <summary> /// Metode kura izgust nepieciešamos datus un attelo Administratora sakuma skatu /// </summary> /// <param name="searchData">Meklēšanas dati</param> /// <param name="Page">Lappuse</param> /// <returns></returns> public ActionResult Index(IndexSearchModel searchData, int Page = 1) { AdminIndexViewModel viewModel = new AdminIndexViewModel(); //Dati kuros glabasies visas preces ar nomniekiem un terminiem IQueryable<PreceTerminsNomnieksModel> allData; //Iejjas datu pārbaude un redefinēšana viewModel.SearchData = new IndexSearchModel { IrKavejums = searchData.IrKavejums, Iznomatajs = searchData.Iznomatajs ?? "", PrecesKategorija = searchData.PrecesKategorija ?? SELECT_ALL, PrecesKategorijas = searchData.PrecesKategorijas, PrecesKods = searchData.PrecesKods ?? "", PrecesNosaukums = searchData.PrecesNosaukums ?? "" }; //Izgust visas Preces ar un bez termiņiem un nomniekiem allData = getAllPreces(); //Veic datu ievietošanu skata modelī un nepieciešamo aprēķinu IQueryable<PreceTerminsNomnieksViewModel> allViewData = allData.Select(ptn => new PreceTerminsNomnieksViewModel { PrecesID = ptn.Prece.PrecesID, IznomatajaID = ptn.Nomnieks.NomniekaID, TerminaID = ptn.Termins.TerminaID, PrecesKods = ptn.Prece.PrecesKods ?? "", PrecesNosaukums = ptn.Prece.PrecesNosaukums ?? "", PrecesNomasCena = ptn.Prece.PrecesCena, PrecesKategorija = ptn.Prece.Kategorija.PrecesKategorija ?? "", Iznomatajs = (ptn.Nomnieks.NomniekaVards + " " + ptn.Nomnieks.NomniekaUzvards) ?? "", NodosanasDatums = ptn.Termins.NodosanasDatums, //Kavējuma konstatēšana IrKavejums = ((ptn.Termins.NodosanasDatums.HasValue) && (EntityFunctions.DiffDays(ptn.Termins.NodosanasDatums.Value, DateTime.Now) > 0)), KavejumaSods = ((ptn.Termins.NodosanasDatums.HasValue) && (EntityFunctions.DiffDays(ptn.Termins.NodosanasDatums.Value, DateTime.Now) > 0)) ? (decimal) EntityFunctions.DiffDays(ptn.Termins.NodosanasDatums, DateTime.Now) * PENALITY_PERCENTS * ptn.Prece.PrecesCena : (decimal?) null }); //Veic datu atlasi pēc meklēšanas kritērijiem IQueryable<PreceTerminsNomnieksViewModel> filteredViewData = allViewData .Where(ptnViewModel => ptnViewModel.Iznomatajs.Contains(viewModel.SearchData.Iznomatajs)) .Where(ptnViewModel => ptnViewModel.PrecesKods.Contains(viewModel.SearchData.PrecesKods)) .Where(ptnViewModel => ptnViewModel.PrecesNosaukums.Contains(viewModel.SearchData.PrecesNosaukums)) .Where( ptnViewModel => ptnViewModel.PrecesKategorija == viewModel.SearchData.PrecesKategorija || viewModel.SearchData.PrecesKategorija == SELECT_ALL) .Where(ptnViewModel => viewModel.SearchData.IrKavejums ? ptnViewModel.IrKavejums : true); //Veic datu atlasi ko paradīs vienā lapā IQueryable<PreceTerminsNomnieksViewModel> pageViewData = filteredViewData .OrderBy(ptn => ptn.PrecesNomasCena) .Skip((Page - 1) * PageSize) .Take(PageSize); viewModel.IndexTableData = pageViewData; viewModel.PagingInfo = new PagingInfo { CurrentPage = Page, ItemsPerPage = PageSize, TotalItems = filteredViewData.Count() }; return View(viewModel); }
public PartialViewResult IndexSearch(IndexSearchModel searchData) { //Parkope vertibas lokalaja mainigaja IndexSearchModel searchModel = new IndexSearchModel { PrecesNosaukums = searchData.PrecesNosaukums, PrecesKategorija = searchData.PrecesKategorija ?? SELECT_ALL, PrecesKods = searchData.PrecesKods, Iznomatajs = searchData.Iznomatajs, IrKavejums = searchData.IrKavejums, }; //Izgust kategorijas ko izmantos dorpdownlist uz IndexSearch skata IEnumerable<SelectListItem> selectListItems = dataRepostory.Kategorijas .Select(kategorija => new SelectListItem { Value =kategorija.PrecesKategorija, Text = kategorija.PrecesKategorija }); //Pievieno vel vienu kategoriju ar kuras palidzibu vares izveleties visas preces IEnumerable<SelectListItem> aListItems = new[] { new SelectListItem { Text = "Visas kategorijas", Value = SELECT_ALL } }; //Apvieno kategorijas sarakstu ar visu kategoriju izvelnes sarakstu selectListItems = selectListItems.Concat(aListItems); //Nodrošina pareizo izvelēto vertību attēlošanu pēc katra pieprasijuma izmantojot SelectListItem Selected lauku searchModel.PrecesKategorijas = new SelectList(selectListItems.Select(li => new SelectListItem { Selected = (searchModel.PrecesKategorija == li.Value), Text =li.Text, Value = li.Value } ),"Value","Text" ); return PartialView(searchModel); }