コード例 #1
0
        public async Task <IActionResult> GetSearchUserAsync(
            Guid examCategoryId,
            [FromQuery] int?p         = 1,
            [FromQuery] string filter = "")
        {
            if (examCategoryId == Guid.Empty)
            {
                return(PartialView(AppTheme.ContentNothing));
            }
            var examCat = await _ExamCategoryService.GetSimpify(examCategoryId);

            if (examCat.Success)
            {
                ViewBag.CurrentExamCategory = examCat.Data;
            }
            else
            {
                return(PartialView(AppTheme.ContentNothing));
            }

            if (p == null || p <= 0)
            {
                p = 1;
            }
            ViewBag.p = p.Value;

            var serchInp = new GetAppUserDTO
            {
                Filter         = filter ?? "",
                MaxResultCount = AppTheme.Limit,
                SkipCount      = (p.Value - 1) * AppTheme.Limit,
            };
            var res = await _ExamCatInstructService.GetInstructorsAsync(examCategoryId, serchInp);

            if (res.Success)
            {
                PagedResultDto <AppUserDTO> Containers = res.Data;

                string listRes = string.Format("Showing {0} to {1} of {2} entries",
                                               res.Data.TotalCount > 0 ? serchInp.SkipCount + 1 : 0, serchInp.SkipCount + res.Data.Items.Count, res.Data.TotalCount);
                if (!filter.IsNullOrEmpty())
                {
                    listRes += string.Format(" for \"{0}\"", serchInp.Filter);
                }
                ViewBag.ListState = listRes;

                ViewBag.Filter     = filter;
                ViewBag.Pagination = PaginateHelper.Generate(
                    "javascript:syncVt('" + examCategoryId + "','{0}', '" + filter + "');",
                    p.Value, Containers.TotalCount, AppTheme.Limit);
                return(PartialView(UserTableView, Containers));
            }
            else
            {
                return(PartialView(AppTheme.ContentNothing));
            }
        }
コード例 #2
0
        public async Task <ResponseWrapper <PagedResultDto <AppUserDTO> > > GetInstructorsAsync(Guid ExamCatInstructorId, GetAppUserDTO input)
        {
            if (input.Sorting.IsNullOrWhiteSpace())
            {
                input.Sorting = nameof(AppUser.Name);
            }

            var currentInstructorIds = Repository
                                       .Where(x => x.ExamCategoryId == ExamCatInstructorId)
                                       .Select(x => x.UserId).ToList();

            var query = await _AppUserRepository.GetQueryableAsync();

            query = query.Where(x => !currentInstructorIds.Contains(x.Id));
            if (!input.Filter.IsNullOrWhiteSpace())
            {
                query = query.Where(user =>
                                    user.DisplayName.Contains(input.Filter) ||
                                    user.Surname.Contains(input.Filter) ||
                                    user.Name.Contains(input.Filter) ||
                                    user.PhoneNumber.Contains(input.Filter) ||
                                    user.IdentityCardNumber.Contains(input.Filter) ||
                                    user.UserName.Contains(input.Filter) ||
                                    user.Email.Contains(input.Filter));
            }
            var users = query
                        .OrderBy(input.Sorting)
                        .Skip(input.SkipCount)
                        .Take(input.MaxResultCount)
                        .ToList();

            return(new ResponseWrapper <PagedResultDto <AppUserDTO> >(
                       new PagedResultDto <AppUserDTO>(
                           query.Count(),
                           ObjectMapper.Map <List <AppUser>, List <AppUserDTO> >(users)),
                       "Successful"));
        }