コード例 #1
0
        public async Task <IAsyncResult> EditAsync(string userId, UserToEdit userToEdit)
        {
            var userFromRepo = await _manager.FindByIdAsync(userId.ToString());

            if (userFromRepo == null)
            {
                throw new Exception("Nie ma takiego użytkownika");
            }

            if (!string.IsNullOrEmpty(userToEdit.FirstName))
            {
                userFromRepo.FirstName = userToEdit.FirstName;
            }
            if (!string.IsNullOrEmpty(userToEdit.LastName))
            {
                userFromRepo.LastName = userToEdit.LastName;
            }

            var result = _manager.UpdateAsync(userFromRepo);

            if (result.IsCompletedSuccessfully)
            {
                return(Task.CompletedTask);
            }

            throw new Exception("Wystąpił błąd.");
        }
コード例 #2
0
        public async Task <IActionResult> Edit([Bind("Id,LmsName,Email,CourseName,Role,ChangePassword,Password")] UserToEdit user)
        {
            if (ModelState.IsValid)
            {
                var user2Store = await _context.ApplicationUser.FindAsync(user.Id);

                user2Store.LmsName  = user.LmsName;
                user2Store.Email    = user.Email;
                user2Store.UserName = user.Email;

                // Do we need to make this aynchronous?
                user2Store.CourseId = _context.Course
                                      .FirstOrDefault(c => c.Name == user.CourseName)
                                      .Id;

                try
                {
                    var result = await _userManager.UpdateAsync(user2Store);
                }
                catch (DbUpdateConcurrencyException)
                {
                    // What is this for? Check in Course Edit
                    if (user.Id == "hej")
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                if (user2Store == null)
                {
                    return(NotFound());
                }

                if (user.ChangePassword)
                {
                    var result = await _userManager.RemovePasswordAsync(user2Store);

                    result = await _userManager.AddPasswordAsync(user2Store, user.Password);
                }

                if (user.Role == "Teacher")
                {
                    var resultAddRole = await _userManager.AddToRoleAsync(user2Store, "Teacher");
                }
                else // Role == "Student", therefore remove "Teacher"
                {
                    var resulRemovRole = await _userManager.RemoveFromRoleAsync(user2Store, "Teacher");
                }

                return(RedirectToAction(nameof(Index))); // TODO CJA: Why duplicate returns here?
            }
            return(RedirectToAction(nameof(Index)));
        }
コード例 #3
0
        public async Task <IActionResult> EditUserAsync(UserToEdit userToEdit)
        {
            try
            {
                await _service.EditAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value, userToEdit);

                return(NoContent());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
コード例 #4
0
        // GET: ApplicationUser/Edit/#¤%¤#"!"#)=
        public async Task <IActionResult> Edit(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var user = await _context.ApplicationUser.FindAsync(id);

            if (user == null)
            {
                return(NotFound());
            }
            var u2e = new UserToEdit();

            u2e.Id      = user.Id;
            u2e.LmsName = user.LmsName;
            u2e.Email   = user.Email;

            u2e.AllCourseNames = await _context.Course
                                 .Select(c => new SelectListItem {
                Selected = user.CourseId == c.Id, Text = c.Name, Value = c.Name
            })
                                 .OrderBy(sli => sli.Value)
                                 .ToListAsync();

            u2e.AllRoles = new List <SelectListItem>();
            foreach (IdentityRole ir in _roleManager.Roles)
            {
                string usersCurrentRole = "";
                if (await _userManager.IsInRoleAsync(user, "Teacher"))
                {
                    usersCurrentRole = "Teacher";
                }
                else
                {
                    usersCurrentRole = "Student";
                }
                u2e.AllRoles.Add(new SelectListItem {
                    Selected = ir.Name == usersCurrentRole, Text = ir.Name, Value = ir.Name
                });
            }

            return(View(u2e));
        }