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); }
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)); }
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()); }