public static void UpdateUser(this Model.Models.ApplicationUser appUser, ApplicationUserViewModel appUserViewModel, string action = "add") { appUser.Id = appUserViewModel.Id; appUser.FullName = appUserViewModel.FullName; appUser.BirthDay = appUserViewModel.BirthDay; appUser.Email = appUserViewModel.Email; appUser.UserName = appUserViewModel.UserName; appUser.PhoneNumber = appUserViewModel.PhoneNumber; }
public async Task <HttpResponseMessage> Create(HttpRequestMessage request, ApplicationUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var newAppUser = new Model.Models.ApplicationUser(); newAppUser.UpdateUser(applicationUserViewModel); try { newAppUser.Id = Guid.NewGuid().ToString(); var result = await _userManager.CreateAsync(newAppUser, applicationUserViewModel.Password); if (result.Succeeded) { var listAppUserGroup = new List <ApplicationUserGroup>(); foreach (var group in applicationUserViewModel.Groups) { listAppUserGroup.Add(new ApplicationUserGroup() { GroupId = group.ID, UserId = newAppUser.Id }); //add role to user var listRole = _appRoleService.GetListRoleByGroupId(group.ID); foreach (var role in listRole) { await _userManager.RemoveFromRoleAsync(newAppUser.Id, role.Name); await _userManager.AddToRoleAsync(newAppUser.Id, role.Name); } } _appGroupService.AddUserToGroups(listAppUserGroup, newAppUser.Id); _appGroupService.Save(); return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } catch (NameDuplicatedException dex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } catch (Exception ex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }