public ActionResult Customers(UserIndexOptionsViewModel options) { if (!this.contentOwnershipService.IsCurrentUserOperator()) { return(new HttpUnauthorizedResult()); } var pager = this.helperService.ReterivePagerFromQueryString(); options = options ?? new UserIndexOptionsViewModel(); int count = this.basicDataService.GetCustomersCount(options.Search); var customers = this.basicDataService.GetCustomers(options.Search, pager.Page, pager.PageSize, options.Order, options.OrderByDescending); var pagerShape = Shape.Pager(pager).PagerId("page"); pagerShape.TotalItemCount(count); UserListViewModel model = new UserListViewModel { Pager = pagerShape, Search = options.Search, OrderBy = options.Order, OrderByDescending = options.OrderByDescending }; model.Users.AddRange(customers.Select(c => ProjectHelper.Convert <UserViewModel>(c))); var userProjects = this.projectService.GetUsersProjects(customers.Select(c => c.Id)); foreach (var user in model.Users) { if (userProjects.ContainsKey(user.UserId)) { user.UserProjects.AddRange(userProjects[user.UserId].Select(c => new SelectListItem { Value = c.Record.Id.ToString(CultureInfo.InvariantCulture), Text = c.Record.Title })); } } return(View(model)); }
public ActionResult Operators(UserIndexOptionsViewModel options) { if (!this.contentOwnershipService.IsCurrentUserOperator()) { return(new HttpUnauthorizedResult()); } options = options ?? new UserIndexOptionsViewModel(); var operators = this.basicDataService.GetOperators(); string searchPhrase = string.IsNullOrEmpty(options.Search)? string.Empty: options.Search.ToLower(); if (!String.IsNullOrWhiteSpace(options.Search)) { operators = operators.Where(u => u.UserName.ToLower().Contains(searchPhrase) || u.Email.ToLower().Contains(searchPhrase) || (CRMHelper.GetFullNameOfUser(u) != null && CRMHelper.GetFullNameOfUser(u).ToLower().Contains(searchPhrase))) .ToList(); } switch (options.Order) { case UsersOrderViewModel.Username: operators = operators.OrderBy(u => u.UserName); break; case UsersOrderViewModel.Email: operators = operators.OrderBy(u => u.Email); break; } var pager = this.helperService.ReterivePagerFromQueryString(); var pagerShape = Shape.Pager(pager).PagerId("page"); pagerShape.TotalItemCount(operators.Count()); UserListViewModel model = new UserListViewModel { Pager = pagerShape, Search = searchPhrase, OrderBy = options.Order, OrderByDescending = options.OrderByDescending }; operators = operators.Skip(Math.Min(0, pager.Page - 1) * pager.PageSize).Take(pager.PageSize); model.Users.AddRange(operators.Select(c => ProjectHelper.Convert <UserViewModel>(c))); var userProjects = this.projectService.GetUsersProjects(operators.Select(c => c.Id)); foreach (var user in model.Users) { if (userProjects.ContainsKey(user.UserId)) { user.UserProjects.AddRange(userProjects[user.UserId].Select(c => new SelectListItem { Value = c.Record.Id.ToString(CultureInfo.InvariantCulture), Text = c.Record.Title })); } } return(View(model)); }