public async Task <IdentityResult> RegisterAsync(RegisterBaseViewModel ViewModel) { DateTime BirthDateMiladi = _convertDate.ConvertShamsiToMiladi(ViewModel.BirthDate); var user = new ApplicationUser { UserName = ViewModel.UserName, Email = ViewModel.Email, PhoneNumber = ViewModel.PhoneNumber, RegisterDate = DateTime.Now, IsActive = true, BirthDate = BirthDateMiladi, EmailConfirmed = ViewModel.EmailConfirmed, PhoneNumberConfirmed = ViewModel.PhoneNumberConfirmed }; IdentityResult result = await _userManager.CreateAsync(user, ViewModel.Password); if (result.Succeeded) { return(await AddRoleToUser("کاربر", user)); } else { return(result); } }
public async Task <IActionResult> Edit(UsersViewModel ViewModel) { if (ModelState.IsValid) { var User = await _userManager.FindByIdAsync(ViewModel.Id); if (User == null) { return(NotFound()); } else { IdentityResult Result; var RecentRoles = await _userManager.GetRolesAsync(User); if (ViewModel.Roles == null) { ViewModel.Roles = new string[] { } } ; var DeleteRoles = RecentRoles.Except(ViewModel.Roles); var AddRoles = ViewModel.Roles.Except(RecentRoles); Result = await _userManager.RemoveFromRolesAsync(User, DeleteRoles); if (Result.Succeeded) { Result = await _userManager.AddToRolesAsync(User, AddRoles); if (Result.Succeeded) { User.FirstName = ViewModel.FirstName; User.LastName = ViewModel.LastName; User.Email = ViewModel.Email; User.PhoneNumber = ViewModel.PhoneNumber; User.UserName = ViewModel.UserName; User.BirthDate = _converDate.ConvertShamsiToMiladi(ViewModel.PersianBirthDate); Result = await _userManager.UpdateAsync(User); await _userManager.UpdateSecurityStampAsync(User); if (Result.Succeeded) { ViewBag.AlertSuccess = "ذخیره تغییرات با موفقیت انجام شد."; } } } if (Result != null) { foreach (var item in Result.Errors) { ModelState.AddModelError("", item.Description); } } } } ViewBag.AllRoles = _roleManager.GetAllRoles(); return(View(ViewModel)); }