public virtual ActionResult Edit(int id) { DBTerminal dbTerminal = _selectionRepository.GetObjectById(id); if (dbTerminal.IsDeleted) { return(RedirectToAction("Details", new { id = id })); } TerminalModel terminal = new TerminalModel() { Id = dbTerminal.Id, PhoneNumber = dbTerminal.PhoneNumber, IsPublic = dbTerminal.IsPublic, RegionId = dbTerminal.RegionId, CorrectionFacilityId = dbTerminal.CorrectionFacilityId, Description = dbTerminal.Description, IsActive = dbTerminal.IsActive }; ViewBag.Regions = RegionController.GetRegionList(null); ViewBag.CorrectionFacilities = CorrectionFacilityController.GetCorrectionFacilitiesByRegion(dbTerminal.RegionId, null); return(View(terminal)); }
public virtual ActionResult List(int?page, GridSortOptions sortOptions, string number, int?regionId, int?correctionFacilityId, string terminalAddress) { // реализация поиска и фильтрации //http://www.codeproject.com/KB/aspnet/Grid_Paging_In_MVC3.aspx var dbFacilities = _selectionRepository.GetAllObjects().Where(terminal => terminal.IsDeleted == false); if (!UserHelper.Instance.IsAdministrator && !UserHelper.Instance.IsManager && !UserHelper.Instance.IsCallCenterUser) //простым смертным показывать только активные терминалы { dbFacilities = dbFacilities.Where(terminal => terminal.IsActive == true); } var facilities = dbFacilities.Select(dbTerminal => new TerminalListModel { Id = dbTerminal.Id, PhoneNumber = dbTerminal.PhoneNumber, IsPublic = dbTerminal.IsPublic, CorrectionFacilityId = dbTerminal.CorrectionFacilityId, CorrectionFacilityName = dbTerminal.CorrectionFacility.Name, InstallationAddress = dbTerminal.CorrectionFacility.Address, RegionId = dbTerminal.RegionId, IsActive = dbTerminal.IsActive }); var pagedViewModel = new PagedViewModel <TerminalListModel> { ViewData = ViewData, Query = facilities, GridSortOptions = sortOptions, DefaultSortColumn = "PhoneNumber", Page = page, PageSize = 10 } .AddFilter("number", number, t => t.PhoneNumber.Contains(number)) .AddFilter("RegionId", regionId, t => t.RegionId == regionId, RegionController.GetDBRegionList(null), "Id", "Name") .AddFilter("CorrectionFacilityId", correctionFacilityId, t => t.CorrectionFacilityId == correctionFacilityId, CorrectionFacilityController.GetDbCorrectionFacilityList(-1, null), "Id", "Name") .AddFilter("terminalAddress", terminalAddress, t => t.InstallationAddress.ToLower().Contains(terminalAddress.ToLower())) .Setup(); return(View(pagedViewModel)); }