public IActionResult Index(SortState sortState = SortState.EmployeesNameAsc, int page = 1) { EmployeesFilterViewModel filter = HttpContext.Session.Get <EmployeesFilterViewModel>(filterKey); if (filter == null) { filter = new EmployeesFilterViewModel { EmployeeName = string.Empty }; HttpContext.Session.Set(filterKey, filter); } string modelKey = $"{typeof(Employee).Name}-{page}-{sortState}-{filter.EmployeePost}-{filter.EmployeeName}-{filter.EmployeeSurname} -{filter.EmployeePatronymic}"; if (!cache.TryGetValue(modelKey, out EmployeeViewModel model)) { model = new EmployeeViewModel(); IQueryable <Employee> employees = GetSortedEntities(sortState, filter.EmployeePost, filter.EmployeeName, filter.EmployeeSurname, filter.EmployeePatronymic); int count = employees.Count(); int pageSize = 10; model.PageViewModel = new PageViewModel(page, count, pageSize); model.Entities = count == 0 ? new List <Employee>() : employees.Skip((model.PageViewModel.CurrentPage - 1) * pageSize).Take(pageSize).ToList(); model.SortViewModel = new SortViewModel(sortState); model.EmployeesFilterViewModel = filter; cache.Set(modelKey, model); } return(View(model)); }
// GET: Employees public async Task <IActionResult> Index(string firstName, string lastName, int shopId = 0) { IQueryable <Employee> employees = _context.Employee; if (!string.IsNullOrEmpty(firstName)) { employees = employees.Where(e => e.FirstName == firstName); ViewData["FirstName"] = firstName; } if (!string.IsNullOrEmpty(lastName)) { employees = employees.Where(e => e.LastName == lastName); ViewData["LastName"] = lastName; } if (shopId != 0) { employees = employees.Where(s => s.Shops.Select(s => s.ShopId).Contains(shopId)); } employees = employees.Include(s => s.Shops).ThenInclude(s => s.Shop); var viewModel = new EmployeesFilterViewModel { Employees = await employees.ToListAsync(), Shops = new SelectList(_context.Shop, "Id", "Name") }; return(View(viewModel)); }
public IActionResult Index(EmployeesFilterViewModel filterModel, int page) { EmployeesFilterViewModel filter = HttpContext.Session.Get <EmployeesFilterViewModel>(filterKey); if (filter != null) { filter.Name = filterModel.Name; filter.Position = filterModel.Position; HttpContext.Session.Remove(filterKey); HttpContext.Session.Set(filterKey, filter); } return(RedirectToAction("Index", new { page })); }
public IActionResult Index(EmployeesFilterViewModel filterModel, int page) { EmployeesFilterViewModel filter = HttpContext.Session.Get <EmployeesFilterViewModel>(filterKey); if (filter != null) { filter.EmployeePost = filterModel.EmployeePost; filter.EmployeeName = filterModel.EmployeeName; filter.EmployeeSurname = filterModel.EmployeeSurname; filter.EmployeePatronymic = filterModel.EmployeePatronymic; filter.EmployeeEmploymentDate = filterModel.EmployeeEmploymentDate; HttpContext.Session.Remove(filterKey); HttpContext.Session.Set(filterKey, filter); } return(RedirectToAction("Index", new { page })); }
// GET: Employees public async Task <IActionResult> Index(SortState sortState = SortState.EmployeeNameAsc, int page = 1) { EmployeesFilterViewModel filter = HttpContext.Session.Get <EmployeesFilterViewModel>(filterKey); if (filter == null) { filter = new EmployeesFilterViewModel { Name = string.Empty, Position = string.Empty }; HttpContext.Session.Set(filterKey, filter); } string key = $"{typeof(Employee).Name}-{page}-{sortState}-{filter.Name}-{filter.Position}"; if (!_cache.TryGetValue(key, out EmployeeViewModel model)) { model = new EmployeeViewModel(); IQueryable <Employee> employees = GetSortedEmp(sortState, filter.Name, filter.Position); int count = employees.Count(); model.PageViewModel = new PageViewModel(page, count, pageSize); model.Employees = count == 0 ? new List <Employee>() : employees.Skip((model.PageViewModel.PageIndex - 1) * pageSize).Take(pageSize).ToList(); model.SortViewModel = new SortViewModel(sortState); model.EmployeesFilterViewModel = filter; _cache.Set(key, model); } return(View(model)); }
public IActionResult Index(string name, string surname, string patronymic, int page = 1, SortState sortOrder = SortState.EmployeeIDAsc) { int pageSize = 10; IQueryable <Employee> source = db.Employees; if (!String.IsNullOrEmpty(name)) { source = source.Where(p => p.NameEmpl.Contains(name)); } if (!String.IsNullOrEmpty(surname)) { source = source.Where(p => p.SurnameEmpl.Contains(surname)); } if (!String.IsNullOrEmpty(patronymic)) { source = source.Where(p => p.MiddlenameEmpl.Contains(patronymic)); } switch (sortOrder) { case SortState.EmployeeIDDesc: source = source.OrderByDescending(s => s.EmployeeID); break; case SortState.NameOfEmplAsc: source = source.OrderBy(s => s.NameEmpl); break; case SortState.NameOfEmplDesc: source = source.OrderByDescending(s => s.NameEmpl); break; case SortState.SurnameOfEmplAsc: source = source.OrderBy(s => s.SurnameEmpl); break; case SortState.SurnameOfEmplDesc: source = source.OrderByDescending(s => s.SurnameEmpl); break; case SortState.MiddlenameOfEmplAsc: source = source.OrderBy(s => s.MiddlenameEmpl); break; case SortState.MiddlenameOfEmplDesc: source = source.OrderByDescending(s => s.MiddlenameEmpl); break; case SortState.PatronymicAsc: source = source.OrderBy(s => s.Patronymic); break; case SortState.PatronymicDesc: source = source.OrderByDescending(s => s.Patronymic); break; case SortState.DateofBirthAsc: source = source.OrderBy(s => s.DateofBirth); break; case SortState.DateofBirthDesc: source = source.OrderByDescending(s => s.DateofBirth); break; default: source = source.OrderBy(s => s.EmployeeID); break; } var count = source.Count(); var items = source.Skip((page - 1) * pageSize).Take(pageSize).ToList(); PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); EmployeesFilterViewModel employeesFilterViewModel = new EmployeesFilterViewModel(name, surname, patronymic); EmployeesViewModel employees = new EmployeesViewModel { Employees = items, PageViewModel = pageViewModel, SortViewModel = new EmployeesSortViewModel(sortOrder), FilterViewModel = employeesFilterViewModel }; //var employees = db.Employees.ToList(); return(View(employees)); }
public EmployeePageViewModel() { Title = "Сотрудники"; Filter = new EmployeesFilterViewModel(); }