示例#1
0
        public IActionResult History(bool?filter, string filterText, int pageNumber = 1)
        {
            var user     = HttpContext.User;
            var id       = user.Claims.Where(claim => claim.Type == ClaimTypes.NameIdentifier).First().Value;
            var attorney = _attorneysRepo.Attorneys.Where(x => x.UserId == Convert.ToInt32(id)).FirstOrDefault();

            Func <VacationsRequest, bool> filterFunction = c => c.IsApproved == filter;

            Func <VacationsRequest, bool> filterFunctionText = c => String.IsNullOrEmpty(filterText) || c.Reason.CaseInsensitiveContains(filterText) || c.StartDate.ToString("dd/MM/yyyy").Contains(filterText);
            VacationsRequestListViewModel viewModel          = new VacationsRequestListViewModel();

            viewModel.CurrentFilter     = filter;
            viewModel.CurrentFilterText = filterText;
            viewModel.VacationsRequests = _vacationsRequestRepo.GetVacationsRequests(attorney.Id)
                                          .Where(filterFunction)
                                          .Where(filterFunctionText)
                                          .Skip((pageNumber - 1) * PageSize)
                                          .Take(PageSize);
            viewModel.PagingInfo = new PagingInfo
            {
                CurrentPage  = pageNumber,
                ItemsPerPage = PageSize,
                TotalItems   = _vacationsRequestRepo.GetVacationsRequests(attorney.Id).Count(filterFunction)
            };
            return(View(viewModel));
        }
示例#2
0
        public IActionResult Admin(bool?filter, string filterText, int pageNumber = 1)
        {
            int currentUserId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
            Func <VacationsRequest, bool> filterFunction     = r => (r.IsApproved == filter && filter == null && r.VacationsRequestAnswers.Any(vra => vra.ApproverId == currentUserId && vra.IsApproved == null)) || (r.IsApproved == filter && filter != null);
            Func <VacationsRequest, bool> filterFunctionText = c => String.IsNullOrEmpty(filterText) || c.Attorney.Name.CaseInsensitiveContains(filterText) || c.StartDate.ToString("dd/MM/yyyy").Contains(filterText);
            VacationsRequestListViewModel viewModel          = new VacationsRequestListViewModel();

            viewModel.CurrentFilter     = filter;
            viewModel.CurrentFilterText = filterText;
            viewModel.VacationsRequests = _vacationsRequestRepo.VacationsRequests()
                                          .Include(v => v.Attorney)
                                          .Where(filterFunction)
                                          .Where(filterFunctionText)
                                          .Skip((pageNumber - 1) * PageSize)
                                          .Take(PageSize);
            viewModel.PagingInfo = new PagingInfo
            {
                CurrentPage  = pageNumber,
                ItemsPerPage = PageSize,
                TotalItems   = _vacationsRequestRepo.VacationsRequests().Count(filterFunction)
            };
            ViewBag.Answered = TempData["answered"];
            ViewBag.Message  = TempData["message"];
            return(View(viewModel));
        }