public async Task<ActionResult> Index(UsersIndexViewModel viewModel)
        {
            if(GetUserRole() != "Admin")
            {
                return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
            }

            var userRole = GetUserRole(viewModel.UserName);

            if(viewModel.UserName == null)
            {
                userRole = null;
            }

            switch(userRole)
            {
                case "Admin":
                    return RedirectToAction("Index", "Users", new { msg = "err-admin" });
                case "Creator":
                    return RedirectToAction("Index", "Users", new { msg = "err-no-promote" });
                case "User":
                    var user = _userManager.Users.Where(u => u.UserName == viewModel.UserName).SingleOrDefault();
                    await _userManager.RemoveFromRoleAsync(user.Id, "User");
                    await _userManager.AddToRoleAsync(user.Id, "Creator");
                    return RedirectToAction("Index", "Users", new { msg = "msg-promote-success" });
                default:
                    return RedirectToAction("Index", "Users", new { msg = "err-no-user" });
            }
        }
예제 #2
0
        public async Task <IActionResult> Index(int page = 1, string filteredName = null, string filteredClientID = null, string filteredEmail = null)
        {
            int pageSize = 10;

            IQueryable <ApplicationUser> source = db.Users;

            if (!String.IsNullOrEmpty(filteredName))
            {
                source = source.Where(p => p.UserName.Contains(filteredName));
            }
            if (!String.IsNullOrEmpty(filteredClientID))
            {
                source = source.Where(p => p.ClientID.Contains(filteredClientID));
            }
            if (!String.IsNullOrEmpty(filteredEmail))
            {
                source = source.Where(p => p.Email.Contains(filteredEmail));
            }

            var count = await source.CountAsync();

            var items = await source.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            UsersIndexViewModel viewModel = new UsersIndexViewModel
            {
                PageViewModel        = new PageViewModel(count, page, pageSize),
                UsersFilterViewModel = new UsersFilterViewModel(filteredName, filteredClientID, filteredEmail),
                Users = items
            };

            return(View(viewModel));
        }
예제 #3
0
        public async Task <IActionResult> Index(int page = 1, string PageFilter = "")
        {
            int pageSize = 5;

            IQueryable <User> users = null;

            if (!String.IsNullOrEmpty(PageFilter))
            {
                users = _userManager.Users.Where(x => x.Email.Contains(PageFilter));
            }
            else
            {
                users = _userManager.Users;
            }

            var count = await users.CountAsync();

            var items = await users.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            PageViewModel       pageViewModel = new PageViewModel(count, page, pageSize);
            UsersIndexViewModel viewModel     = new UsersIndexViewModel
            {
                PageViewModel = pageViewModel,
                Users         = items,
                FilterName    = PageFilter
            };

            return(View(viewModel));
        }
예제 #4
0
        public async Task <ViewResult> Index()
        {
            var users  = _appDbContext.Users.ToList();
            var orders = _orderRepository.GetAll();

            var ordersWithoutUsers = orders.Where(x => x.Registration == null);
            var ordersWithUsers    = orders.Where(x => x.Registration != null);

            var usersThatOrdered = ordersWithUsers.Select(x => x.Registration).Distinct();

            List <ApplicationUser> nonAdminUsers = new List <ApplicationUser>();

            foreach (var user in users)
            {
                var isNonAdmin = !await _userManager.IsInRoleAsync(user, "Administrator");

                if (isNonAdmin)
                {
                    nonAdminUsers.Add(user);
                }
            }

            var usersThatDidntOrder = nonAdminUsers.Where(x => usersThatOrdered.Count(y => y == x) == 0);

            var vm = new UsersIndexViewModel
            {
                OrdersWithoutUsers  = ordersWithoutUsers,
                OrdersWithUsers     = ordersWithUsers,
                UsersThatOrdered    = usersThatOrdered,
                UsersThatDidntOrder = usersThatDidntOrder
            };

            return(View(vm));
        }
예제 #5
0
        // GET: Users
        public IActionResult Index(UsersIndexViewModel model)
        {
            if (GlobalVar.LoggedOnUserId == -1)
            {
                return(RedirectToAction("LogInRequired", "Users"));
            }

            model.Pager ??= new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;

            var allUsers = context.Users.ToList();

            var contextDb = Filter(allUsers, model.Filter);

            List <UsersViewModel> items = contextDb.Skip((model.Pager.CurrentPage - 1) * this.PageSize).Take(this.PageSize).Select(c => new UsersViewModel()
            {
                Id               = c.Id,
                Username         = c.Username,
                Password         = c.Password,
                FirstName        = c.FirstName,
                MiddleName       = c.MiddleName,
                LastName         = c.LastName,
                EGN              = c.EGN,
                Email            = c.Email,
                TelephoneNumber  = c.TelephoneNumber,
                DateOfBeingFired = c.DateOfBeingFired,
                DateOfBeingHired = c.DateOfBeingHired
            }).ToList();

            model.Items            = items;
            model.Pager.PagesCount = Math.Max(1, (int)Math.Ceiling(contextDb.Count() / (double)this.PageSize));

            return(View(model));
        }
 public ActionResult IndexFilterPOST(UsersIndexViewModel model)
 {
     return(RedirectToAction("Index", new RouteValueDictionary {
         { "Options.Filter", model.Options.Filter },
         { "Options.Order", model.Options.Order },
         { "Options.Search", model.Options.Search }
     }));
 }
예제 #7
0
        public async Task <IActionResult> TableLockUser(UsersIndexViewModel model, string id)
        {
            await this.userService.LockUser(id);

            this.TempData["Locked"] = "You Lock this user";

            return(RedirectToAction("Index", "UserAdministration", model));
        }
        public async Task <IActionResult> Index()
        {
            var model = new UsersIndexViewModel()
            {
                Students = await GetBaseNonAdmins(), Admins = await GetBaseAdmins()
            };

            return(View(model));
        }
        public IActionResult Index()
        {
            var users = _userManager.Users;
            var roles = _roleManager.Roles;

            UsersIndexViewModel viewModel = new UsersIndexViewModel(users, roles);

            return(View(viewModel));
        }
예제 #10
0
        public async Task <IActionResult> Index()
        {
            var vm = new UsersIndexViewModel
            {
                Users = await userRepository.GetAll()
            };

            return(View(vm));
        }
        public ActionResult Index()
        {
            var model = new UsersIndexViewModel();

            var users = _managementUsersRepository.GetAll();

            model.Users = users.Select(user => BuildUserViewModel(user)).ToList();

            return(View(model));
        }
예제 #12
0
        public async Task <IActionResult> Index()
        {
            var users = await this.userService.GetAllUsers();

            var userModels = users.Select(us => new UserViewModel(us));
            var model      = new UsersIndexViewModel()
            {
                Users = userModels
            };

            return(View(model));
        }
예제 #13
0
        // GET: /users
        public ActionResult Index()
        {
            var model    = new UsersIndexViewModel();
            var response = this.userService.GetUsers(null);

            if (response.Status == StatusCode.OK)
            {
                model.Users = response.Users.OrderBy(x => x.FirstName).ThenBy(x => x.LastName).ToList();
            }

            return(View(model));
        }
예제 #14
0
        // GET: /users
        public ActionResult Index()
        {
            var model = new UsersIndexViewModel();
            var response = this.userService.GetUsers(null);

            if (response.Status == StatusCode.OK)
            {
                model.Users = response.Users.OrderBy(x => x.FirstName).ThenBy(x => x.LastName).ToList();
            }

            return View(model);
        }
예제 #15
0
        public IActionResult Index()
        {
            if (!this.User.Identity.IsAuthenticated)
            {
                return(this.Redirect("/Identity/Account/Login"));
            }
            var viewModel = new UsersIndexViewModel
            {
                People = this.profilesService.GetAll <IndexUserViewModel>(),
            };

            return(this.View(viewModel));
        }
예제 #16
0
        public ActionResult Index(FormCollection input)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage users")))
            {
                return(new HttpUnauthorizedResult());
            }

            var viewModel = new UsersIndexViewModel {
                Users = new List <UserEntry>(), Options = new UserIndexOptions()
            };

            UpdateModel(viewModel);

            var checkedEntries = viewModel.Users.Where(c => c.IsChecked);

            switch (viewModel.Options.BulkAction)
            {
            case UsersBulkAction.None:
                break;

            case UsersBulkAction.Approve:
                foreach (var entry in checkedEntries)
                {
                    Approve(entry.User.Id);
                }
                break;

            case UsersBulkAction.Disable:
                foreach (var entry in checkedEntries)
                {
                    Moderate(entry.User.Id);
                }
                break;

            case UsersBulkAction.ChallengeEmail:
                foreach (var entry in checkedEntries)
                {
                    SendChallengeEmail(entry.User.Id);
                }
                break;

            case UsersBulkAction.Delete:
                foreach (var entry in checkedEntries)
                {
                    Delete(entry.User.Id);
                }
                break;
            }

            return(RedirectToAction("Index", ControllerContext.RouteData.Values));
        }
예제 #17
0
        public ActionResult Add(UsersIndexViewModel inputModel)
        {
            var model = new UsersIndexViewModel();

            if (ModelState.IsValid)
            {
                Execute(new AddUserCommand(inputModel.Login, inputModel.Email, inputModel.Password));
                ModelState.Clear();
            }

            model.Users = Execute(new GetUsersQuery());
            ViewData.Model = model;

            return RedirectToAction("Index");
        }
예제 #18
0
        public ActionResult Index()
        {
            var users = UserManager.Users.Select(x => new { x.Id, x.UserName, x.PhoneNumber, x.Email }).ToList();

            var model = new UsersIndexViewModel()
            {
                Users = users.Select(x => new UserViewModel()
                {
                    UserId = x.Id, UserName = x.UserName, Email = x.Email, PhoneNumber = x.PhoneNumber
                }).ToList(),
                UserResetPassword = new UserResetPasswordViewModel()
            };

            return(View(model));
        }
예제 #19
0
        public IActionResult Index(int?id)
        {
            if (id.HasValue)
            {
                return(RedirectToAction("Details", id.Value));
            }

            var users = _usersService.GetAllUsers();
            var model = new UsersIndexViewModel
            {
                Users = users
            };

            return(View(model));
        }
예제 #20
0
        public IActionResult Index()
        {
            UsersIndexViewModel model = new UsersIndexViewModel()
            {
                Users = userService.GetAll().Select(u => new UserIndexViewModel()
                {
                    Id        = u.Id,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                    UserName  = u.UserName,
                    IsAdmin   = userService.IsAdmin(u)
                }).ToList()
            };

            return(View(model));
        }
예제 #21
0
        public UsersIndex()
        {
            this.InitializeComponent();

            usersIndexViewModel = new UsersIndexViewModel();

            PageHelper.DoAsync(overlay, Dispatcher, () =>
            {
                usersIndexViewModel.LoadAllUsers();

                PageHelper.MainUI(Dispatcher, () =>
                {
                    this.DataGrid.DataContext = this.usersIndexViewModel.Users;
                });
            });
        }
예제 #22
0
        // GET: Users
        public async Task <IActionResult> Index(UsersIndexViewModel model)
        {
            model.Pager             = new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;

            List <User> items = await _context.Users.Skip((model.Pager.CurrentPage - 1) *PageSize).
                                Take(PageSize).Select(u => new User()
            {
                Id        = u.Id,
                Email     = u.Email,
                FirstName = u.FirstName,
                LastName  = u.LastName,
                Role      = u.Role,
                Team      = u.Team
            }).ToListAsync();

            model.Items            = items;
            model.Pager.PagesCount = (int)Math.Ceiling(await _context.Users.CountAsync() / (double)PageSize);

            return(View(model));
        }
예제 #23
0
        /// <summary>
        /// Determina quais os utilizadores que serão mostrados ao user, dependendo do seu Role.
        /// </summary>
        /// <param name="users">Lista dos utilizadores a serem filtrados</param>
        /// <returns>UsersIndexViewModel</returns>
        private async Task <UsersIndexViewModel> PrepareIndexResponse(List <IdentityUser> users)
        {
            UsersIndexViewModel response = new UsersIndexViewModel()
            {
                AdminEmail = _appSettings.Email,
                Users      = new List <UserWithRoleViewModel>()
            };

            // Prencher os utilizadores e os seus roles
            foreach (var user in users)
            {
                var roles = await _userManager.GetRolesAsync(user);

                // Caso o utilizador seja admin, são mostrados todos os utilizadores
                if (User.IsInRole("Admin"))
                {
                    response.Users.Add(new UserWithRoleViewModel
                    {
                        User  = user,
                        Roles = roles.ToList()
                    });
                }
                else
                {
                    // Caso o utilizador não seja admin, não mostrar os administradores
                    if (!roles.Contains("Admin"))
                    {
                        response.Users.Add(new UserWithRoleViewModel
                        {
                            User  = user,
                            Roles = roles.ToList()
                        });
                    }
                }
            }

            return(response);
        }
예제 #24
0
        //GET : Users
        public async Task <IActionResult> Index(UsersIndexViewModel model)
        {
            model.Pager ??= new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;

            List <UsersViewModel> items = await _context.Users.Skip((model.Pager.CurrentPage - 1) *PageSize).Take(PageSize).Select(c => new UsersViewModel()
            {
                UserName    = c.UserName,
                Password    = c.Password,
                Email       = c.Email,
                FirstName   = c.FirstName,
                LastName    = c.LastName,
                EGN         = c.EGN,
                Address     = c.Address,
                PhoneNumber = c.PhoneNumber,
                Role        = c.Role
            }).ToListAsync();

            model.Items            = items;
            model.Pager.PagesCount = (int)Math.Ceiling(await _context.Users.CountAsync() / (double)PageSize);

            return(View(model));
        }
예제 #25
0
        public IActionResult Index(string searchTerm, int page = 1)
        {
            UsersIndexViewModel viewModel = new UsersIndexViewModel();

            int PageSize = settings.ItemsPerPage;

            viewModel.Rows = db.Users.Where(x => x.Name.Contains(searchTerm) || x.Email.Contains(searchTerm) || string.IsNullOrEmpty(searchTerm)).Select(x => new UsersIndexViewModel.Row()
            {
                UserId = x.Id,
                Email  = x.Email,
                Name   = x.Name,
                Age    = x.Age,
                NumberOfBlogsCreated = (int?)db.Blogs.Where(b => b.UserId == x.Id).Count() ?? 0
            }).OrderBy(x => x.Name).Skip((page - 1) * PageSize).Take(PageSize).ToList();
            viewModel.PaginationHelper = new Pagination()
            {
                ItemsPerPage = PageSize,
                CurrentPage  = page,
                TotalItems   = db.Users.Where(x => x.Name.Contains(searchTerm) || x.Email.Contains(searchTerm) || string.IsNullOrEmpty(searchTerm)).Count()
            };

            return(View(viewModel));
        }
        public async Task <ActionResult> Index(UserIndexOptions options, PagerParameters pagerParameters)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageUsers))
            {
                return(Unauthorized());
            }

            var siteSettings = await _siteService.GetSiteSettingsAsync();

            var pager = new Pager(pagerParameters, siteSettings.PageSize);

            // default options
            if (options == null)
            {
                options = new UserIndexOptions();
            }

            var users = _session.Query <User, UserIndex>();

            switch (options.Filter)
            {
            case UsersFilter.Approved:
                //users = users.Where(u => u.RegistrationStatus == UserStatus.Approved);
                break;

            case UsersFilter.Pending:
                //users = users.Where(u => u.RegistrationStatus == UserStatus.Pending);
                break;

            case UsersFilter.EmailPending:
                //users = users.Where(u => u.EmailStatus == UserStatus.Pending);
                break;
            }

            if (!string.IsNullOrWhiteSpace(options.Search))
            {
                var normalizedSearchUserName = _userManager.NormalizeName(options.Search);
                var normalizedSearchEMail    = _userManager.NormalizeEmail(options.Search);

                users = users.Where(u => u.NormalizedUserName.Contains(normalizedSearchUserName) || u.NormalizedEmail.Contains(normalizedSearchEMail));
            }

            switch (options.Order)
            {
            case UsersOrder.Name:
                users = users.OrderBy(u => u.NormalizedUserName);
                break;

            case UsersOrder.Email:
                users = users.OrderBy(u => u.NormalizedEmail);
                break;

            case UsersOrder.CreatedUtc:
                //users = users.OrderBy(u => u.CreatedUtc);
                break;

            case UsersOrder.LastLoginUtc:
                //users = users.OrderBy(u => u.LastLoginUtc);
                break;
            }

            var count = await users.CountAsync();

            var results = await users
                          .Skip(pager.GetStartIndex())
                          .Take(pager.PageSize)
                          .ListAsync();

            // Maintain previous route data when generating page links
            var routeData = new RouteData();

            routeData.Values.Add("Options.Filter", options.Filter);
            routeData.Values.Add("Options.Search", options.Search);
            routeData.Values.Add("Options.Order", options.Order);

            var pagerShape = (await New.Pager(pager)).TotalItemCount(count).RouteData(routeData);

            var userEntries = new List <UserEntry>();

            foreach (var user in results)
            {
                userEntries.Add(new UserEntry
                {
                    Id    = user.Id,
                    Shape = await _userDisplayManager.BuildDisplayAsync(user, updater: this, displayType: "SummaryAdmin")
                }
                                );
            }

            var model = new UsersIndexViewModel
            {
                Users   = userEntries,
                Options = options,
                Pager   = pagerShape
            };

            model.Options.UserFilters = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = TH["All"].Value, Value = nameof(UsersFilter.All)
                },
                //new SelectListItem() { Text = TH["Approved"].Value, Value = nameof(UsersFilter.Approved) },
                //new SelectListItem() { Text = TH["Email pending"].Value, Value = nameof(UsersFilter.EmailPending) },
                //new SelectListItem() { Text = TH["Pending"].Value, Value = nameof(UsersFilter.Pending) }
            };

            model.Options.UserSorts = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = TH["Name"].Value, Value = nameof(UsersOrder.Name)
                },
                new SelectListItem()
                {
                    Text = TH["Email"].Value, Value = nameof(UsersOrder.Email)
                },
                //new SelectListItem() { Text = TH["Created date"].Value, Value = nameof(UsersOrder.CreatedUtc) },
                //new SelectListItem() { Text = TH["Last Login date"].Value, Value = nameof(UsersOrder.LastLoginUtc) }
            };

            model.Options.UsersBulkAction = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = TH["Approve"].Value, Value = nameof(UsersBulkAction.Approve)
                },
                new SelectListItem()
                {
                    Text = TH["Enable"].Value, Value = nameof(UsersBulkAction.Enable)
                },
                new SelectListItem()
                {
                    Text = TH["Disable"].Value, Value = nameof(UsersBulkAction.Disable)
                },
                new SelectListItem()
                {
                    Text = TH["Delete"].Value, Value = nameof(UsersBulkAction.Delete)
                }
            };

            return(View(model));
        }
예제 #27
0
        public IActionResult Index(int?page, string filter, int pageSize = 10)
        {
            int pageNumber            = (page ?? 1);
            UsersIndexViewModel model = new UsersIndexViewModel()
            {
                Users = userService.GetAllUsers().Select(u => new UserIndexViewModel
                {
                    UserId      = u.Id,
                    Address     = u.Address,
                    FirstName   = u.FirstName,
                    LastName    = u.LastName,
                    Email       = u.Email,
                    PhoneNumber = u.PhoneNumber,
                    SSN         = u.SSN,
                    Username    = u.UserName
                }).ToList(),
                Filter     = filter,
                PageNumber = pageNumber,
                PageSize   = pageSize,
                PagesCount = (int)(Math.Ceiling(userService.GetUsersCount() / (double)pageSize))
            };

            switch (filter)
            {
            case "email":
                model.Users = model.Users.OrderBy(u => u.Email).ToList();
                break;

            case "emailReversed":
                model.Users = model.Users.OrderByDescending(u => u.Email).ToList();
                break;

            case "username":
                model.Users = model.Users.OrderBy(u => u.Username).ToList();
                break;

            case "usernameReversed":
                model.Users = model.Users.OrderByDescending(u => u.Username).ToList();
                break;

            case "firstName":
                model.Users = model.Users.OrderBy(u => u.FirstName).ToList();
                break;

            case "firstNameReversed":
                model.Users = model.Users.OrderByDescending(u => u.FirstName).ToList();
                break;

            case "lastName":
                model.Users = model.Users.OrderBy(u => u.LastName).ToList();
                break;

            case "lastNameReversed":
                model.Users = model.Users.OrderByDescending(u => u.LastName).ToList();
                break;
            }

            model.Users = model.Users.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();

            return(View(model));
        }
예제 #28
0
        public ActionResult Index(UserIndexOptions options, PagerParameters pagerParameters)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to list users")))
            {
                return(new HttpUnauthorizedResult());
            }

            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            // default options
            if (options == null)
            {
                options = new UserIndexOptions();
            }

            var users = Services.ContentManager
                        .Query <UserPart, UserPartRecord>();

            switch (options.Filter)
            {
            case UsersFilter.Approved:
                users = users.Where(u => u.RegistrationStatus == UserStatus.Approved);
                break;

            case UsersFilter.Pending:
                users = users.Where(u => u.RegistrationStatus == UserStatus.Pending);
                break;

            case UsersFilter.EmailPending:
                users = users.Where(u => u.EmailStatus == UserStatus.Pending);
                break;
            }

            if (!String.IsNullOrWhiteSpace(options.Search))
            {
                users = users.Where(u => u.UserName.Contains(options.Search) || u.Email.Contains(options.Search));
            }

            var pagerShape = Shape.Pager(pager).TotalItemCount(users.Count());

            switch (options.Order)
            {
            case UsersOrder.Name:
                users = users.OrderBy(u => u.UserName);
                break;

            case UsersOrder.Email:
                users = users.OrderBy(u => u.Email);
                break;
            }

            var results = users
                          .Slice(pager.GetStartIndex(), pager.PageSize)
                          .ToList();

            var model = new UsersIndexViewModel {
                Users = results
                        .Select(x => new UserEntry {
                    User = x.Record
                })
                        .ToList(),
                Options = options,
                Pager   = pagerShape
            };

            // maintain previous route data when generating page links
            var routeData = new RouteData();

            routeData.Values.Add("Options.Filter", options.Filter);
            routeData.Values.Add("Options.Search", options.Search);
            routeData.Values.Add("Options.Order", options.Order);

            pagerShape.RouteData(routeData);

            return(View(model));
        }
예제 #29
0
        // GET: Users
        public async Task <IActionResult> Index(UsersIndexViewModel model)
        {
            if (GetCookie("LoggedIn") != "true")
            {
                return(Redirect("/"));
            }
            else
            {
                if (GetCookie("Username") != "HotelSysAdmin")
                {
                    return(Redirect("/Menu/User_Menu"));
                }

                model.Pager ??= new PagerViewModel();

                StringValues value = StringValues.Empty;
                Request.Query.TryGetValue("page", out value);
                model.Pager.CurrentPage = StringValues.IsNullOrEmpty(value) ? 1 : int.Parse(value);

                value = StringValues.Empty;
                Request.Query.TryGetValue("pagesize", out value);
                model.Pager.PageSize = StringValues.IsNullOrEmpty(value) ? 10 : int.Parse(value);

                model.Pager.PagesCount = (int)Math.Ceiling((double)_context.Users.ToArray().Length / (double)model.Pager.PageSize);

                value = StringValues.Empty;
                Request.Query.TryGetValue("sort", out value);
                model.CurrentSort = StringValues.IsNullOrEmpty(value) ? 0 : int.Parse(value);

                List <UsersViewModel> items = await _context.Users.Skip((model.Pager.CurrentPage - 1) *model.Pager.PageSize).Take(model.Pager.PageSize).Select(u => new UsersViewModel()
                {
                    Id              = u.Id,
                    Username        = u.Username,
                    FirstName       = u.FirstName,
                    MiddleName      = u.MiddleName,
                    LastName        = u.LastName,
                    PersonalID      = u.PersonalID,
                    PhoneNumber     = u.PhoneNumber,
                    DateAppointment = u.DateAppointment,
                    DateDismissal   = u.DateDismissal,
                    Active          = u.Active,
                    Email           = u.Email
                }).ToListAsync();

                switch (model.CurrentSort)
                {
                case 1:     //FirstName
                    model.Items = items.OrderBy(i => i.FirstName).ToList();
                    break;

                case 2:     //MiddleName
                    model.Items = items.OrderBy(i => i.MiddleName).ToList();
                    break;

                case 3:     //FamilyName
                    model.Items = items.OrderBy(i => i.LastName).ToList();
                    break;

                case 4:     //Email
                    model.Items = items.OrderBy(i => i.Email).ToList();
                    break;

                default:     //Usernames
                    model.Items = items.OrderBy(i => i.Username).ToList();
                    break;
                }

                return(View(model));
            }
        }
예제 #30
0
        public async Task <IActionResult> Index(string searchString, string roleType)
        {
            if (!GetAuthorization(1, 'r'))
            {
                return(NotFound());
            }
            ViewBag.Permission = getPermissions();
            var query = from usersJ in _context.Users
                        join rolesJ in _context.Roles on usersJ.RoleID equals rolesJ.RoleID
                        select new
            {
                UserID         = usersJ.UserID,
                Name           = usersJ.Name,
                Email          = usersJ.Email,
                ConfirmedEmail = usersJ.ConfirmedEmail,
                RoleName       = rolesJ.RoleName,
                RoleID         = rolesJ.RoleID,
                CustomerID     = usersJ.CustomerId
            };

            if (!String.IsNullOrEmpty(searchString))
            {
                query = query.Where(user => user.Name.Contains(searchString));
            }

            if (!String.IsNullOrEmpty(roleType))
            {
                query = query.Where(user => user.RoleName.Contains(roleType));
            }

            var result = query.ToList().Select(e => new Users
            {
                UserID         = e.UserID,
                Name           = e.Name,
                Email          = e.Email,
                ConfirmedEmail = e.ConfirmedEmail,
                RoleName       = e.RoleName,
                RoleID         = e.RoleID,
                CustomerId     = e.CustomerID
            }).ToList();

            var rolesTypesQuery = from roles in _context.Roles
                                  orderby roles.RoleName
                                  select roles.RoleName;

            var usersIndexVM = new UsersIndexViewModel
            {
                Users     = result,
                RolesType = new SelectList(rolesTypesQuery.Distinct().ToList()),
            };

            Dictionary <int, string> dict = new Dictionary <int, string>();
            StripeLib stripeLib           = new StripeLib();

            foreach (Users user in result)
            {
                try
                {
                    dict.Add(user.UserID, stripeLib.GetSubscription(user.CustomerId));
                }
                catch (Exception ex)
                {
                    dict.Add(user.UserID, "N/A");
                }
            }

            ViewBag.Subscriptions = dict;

            return(View(usersIndexVM));
        }
예제 #31
0
        public async Task <ActionResult> Index(UserIndexOptions options, PagerParameters pagerParameters)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageUsers))
            {
                return(Unauthorized());
            }

            var siteSettings = await _siteService.GetSiteSettingsAsync();

            var pager = new Pager(pagerParameters, siteSettings.PageSize);

            // default options
            if (options == null)
            {
                options = new UserIndexOptions();
            }

            var users = _session.QueryAsync <User, UserIndex>();

            switch (options.Filter)
            {
            case UsersFilter.Approved:
                //users = users.Where(u => u.RegistrationStatus == UserStatus.Approved);
                break;

            case UsersFilter.Pending:
                //users = users.Where(u => u.RegistrationStatus == UserStatus.Pending);
                break;

            case UsersFilter.EmailPending:
                //users = users.Where(u => u.EmailStatus == UserStatus.Pending);
                break;
            }

            if (!string.IsNullOrWhiteSpace(options.Search))
            {
                users = users.Where(u => u.NormalizedUserName.Contains(options.Search) || u.NormalizedEmail.Contains(options.Search));
            }

            switch (options.Order)
            {
            case UsersOrder.Name:
                users = users.OrderBy(u => u.NormalizedUserName);
                break;

            case UsersOrder.Email:
                users = users.OrderBy(u => u.NormalizedEmail);
                break;

            case UsersOrder.CreatedUtc:
                //users = users.OrderBy(u => u.CreatedUtc);
                break;

            case UsersOrder.LastLoginUtc:
                //users = users.OrderBy(u => u.LastLoginUtc);
                break;
            }

            var count = await users.Count();

            var results = await users
                          .Skip(pager.GetStartIndex())
                          .Take(pager.PageSize)
                          .List();

            // Maintain previous route data when generating page links
            var routeData = new RouteData();

            routeData.Values.Add("Options.Filter", options.Filter);
            routeData.Values.Add("Options.Search", options.Search);
            routeData.Values.Add("Options.Order", options.Order);

            var pagerShape = New.Pager(pager).TotalItemCount(count).RouteData(routeData);

            var model = new UsersIndexViewModel
            {
                Users = results
                        .Select(x => new UserEntry {
                    User = x
                })
                        .ToList(),
                Options = options,
                Pager   = pagerShape
            };

            return(View(model));
        }
예제 #32
0
        public ActionResult Index(UserIndexOptions options, PagerParameters pagerParameters)
        {
            if (!Services.Authorizer.Authorize(Permissions.ManageUsers, "Not authorized to list users"))
            {
                return(new HttpUnauthorizedResult());
            }

            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            // default options
            if (options == null)
            {
                options = new UserIndexOptions();
            }

            var users = _userRepository.Table;

            switch (options.Filter)
            {
            case UsersFilter.Approved:
                users = users.Where(u => u.RegistrationStatus == UserStatus.Approved);
                break;

            case UsersFilter.Pending:
                users = users.Where(u => u.RegistrationStatus == UserStatus.Pending);
                break;

            case UsersFilter.EmailPending:
                users = users.Where(u => u.EmailStatus == UserStatus.Pending);
                break;
            }

            if (!String.IsNullOrWhiteSpace(options.Search))
            {
                users = users.Where(u => u.UserName.Contains(options.Search) || u.Email.Contains(options.Search));
            }


            switch (options.Order)
            {
            case UsersOrder.Name:
                users = users.OrderBy(u => u.UserName);
                break;

            case UsersOrder.Email:
                users = users.OrderBy(u => u.Email);
                break;
            }

            pager.Total = users.Count();
            var results = users.Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize)
                          .ToList();

            var model = new UsersIndexViewModel
            {
                Users = results
                        .Select(x => new UserEntry {
                    User = x
                })
                        .ToList(),
                Options = options,
                Pager   = pager
            };

            // maintain previous route data when generating page links
            var routeData = new RouteData();

            routeData.Values.Add("Options.Filter", options.Filter);
            routeData.Values.Add("Options.Search", options.Search);
            routeData.Values.Add("Options.Order", options.Order);

            pager.RouteData = routeData;

            return(View(model));
        }