private async Task <ManageUserViewModel> CreateManageUserViewModelForUser(Microsoft.AspNetCore.Identity.IdentityUser user)
        {
            var rolesOfUser = await _identityManager.GetRolesOfUser(user);

            return(new ManageUserViewModel
            {
                Id = user.Id,
                Email = user.Email,
                UserName = user.UserName,
                Roles = string.Join(",", rolesOfUser.ToArray())
            });
        }
        public async Task <bool> AddItemAsync(TodoItem todoItem, Microsoft.AspNetCore.Identity.IdentityUser currentUser)
        {
            todoItem.Id     = Guid.NewGuid();
            todoItem.IsDone = false;
            todoItem.UserId = currentUser.Id;
            todoItem.DueAt  = DateTime.Now.AddDays(3);

            _context.Items.Add(todoItem);

            var saveResult = await _context.SaveChangesAsync();

            return(saveResult == 1);
        }
        public async Task <bool> MarkDoneAsync(Guid id, Microsoft.AspNetCore.Identity.IdentityUser currentUser)
        {
            var todoItem = await _context.Items
                           .Where(x => x.Id == id && x.UserId == currentUser.Id)
                           .SingleOrDefaultAsync();

            ;
            if (todoItem == null)
            {
                return(false);
            }

            todoItem.IsDone = true;
            var saveResult = await _context.SaveChangesAsync();

            return(saveResult == 1);
        }
        public async Task <UserViewModel> GetAllUsers(int?pageNumber)
        {
            UserViewModel viewModel = new UserViewModel();
            var           adminRole = await _context.Roles.Where(s => s.Name.Equals("Admin")).FirstAsync();

            var allUsers = await _context.Users.OrderBy(s => s.UserName).ToListAsync();

            var userRoles = await _context.UserRoles.ToListAsync();

            var admins = userRoles.Where(s => s.RoleId.Equals(adminRole.Id)).ToList();

            viewModel.PageViewModel.TotalCount = allUsers.Count() - admins.Count();
            viewModel.PageViewModel.PageNumber = (pageNumber ?? 1);

            for (int i = 0; i < allUsers.Count(); i++)
            {
                Microsoft.AspNetCore.Identity.IdentityUser user = allUsers.ElementAt(i);
                var role = userRoles.Where(s => s.UserId.Equals(user.Id)).First();
                if (role.RoleId.Equals(adminRole.Id))
                {
                    allUsers.Remove(user);
                    i--;
                }
            }

            int maxI = (viewModel.PageViewModel.PageNumber - 1) * viewModel.PageViewModel.PageSize;

            if (allUsers.Count() - maxI > viewModel.PageViewModel.PageSize)
            {
                maxI += viewModel.PageViewModel.PageSize;
            }
            else
            {
                maxI += allUsers.Count() - maxI;
            }

            for (int i = (viewModel.PageViewModel.PageNumber - 1) * viewModel.PageViewModel.PageSize; i < maxI; i++)
            {
                Microsoft.AspNetCore.Identity.IdentityUser user = allUsers.ElementAt(i);
                var role = userRoles.Where(s => s.UserId.Equals(user.Id)).First();
                viewModel.Users.Add(user);
            }

            return(viewModel);
        }
Exemple #5
0
        public void CancelRegistrant(string UserId, int LessonId)
        {
            Lesson lsn = _context.Lesson.Where(l => l.LessonId == LessonId).FirstOrDefault();

            Microsoft.AspNetCore.Identity.IdentityUser user = _context.Users.Where(u => u.Id == UserId).FirstOrDefault();
            try
            {
                Registrant reg = new Registrant();
                reg.LessonId = lsn;
                reg.UserId   = user;
                _context.Registrant.Remove(reg);
                _context.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception("an error occured" + e.InnerException);
            }
        }
        public async System.Threading.Tasks.Task <Microsoft.AspNetCore.Mvc.IActionResult> Login(Models.ViewModels.LoginModel accountViewModel)
        {
            if (ModelState.IsValid)
            {
                Microsoft.AspNetCore.Identity.IdentityUser user = await userManager.FindByNameAsync(accountViewModel.Name);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    if ((await signInManager.PasswordSignInAsync(user, accountViewModel.Password, false, false)).Succeeded)
                    {
                        return(Redirect(accountViewModel?.ReturnUrl ?? "/Admin/Index"));
                    }
                }
            }
            ModelState.AddModelError("", "Invalid name or password");
            return(View(accountViewModel));
        }
Exemple #7
0
        public void RegisterToLesson(string UserId, int LessonId)
        {
            Lesson lsn = _context.Lesson.Where(l => l.LessonId == LessonId).FirstOrDefault();

            Microsoft.AspNetCore.Identity.IdentityUser user = _context.Users.Where(u => u.Id == UserId).FirstOrDefault();
            if (lsn.RegistrantMax == lsn.RegistrantNum)
            {
                throw new Exception("The Lesson is full and you can't registered");
            }
            else
            {
                Registrant reg = new Registrant();
                reg.LessonId = lsn;
                reg.UserId   = user;
                try {
                    _context.Registrant.Add(reg);
                    _context.SaveChanges();
                }
                catch (Exception e)
                {
                    throw new Exception("an error occured" + e.InnerException);
                }
            }
        }
 public async Task <TodoItem[]> GetIncompleteItemsAsync(Microsoft.AspNetCore.Identity.IdentityUser currentUser)
 {
     return(await _context.Items
            .Where(x => x.IsDone == false && x.UserId == currentUser.Id)
            .ToArrayAsync());
 }