Example #1
0
        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));
        }
Example #2
0
        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));
        }