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));
        }
Exemple #2
0
        // 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));
        }
Exemple #3
0
        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 }));
        }
Exemple #4
0
        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 }));
        }
Exemple #5
0
        // 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();
		}