public async Task <IActionResult> Store([FromBody] IdentityUserEditViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string email = model.user.email.Trim(); string role = model.roles.FirstOrDefault(); var exist = userService.GetUserByEmail(email); if (exist != null) { ModelState.AddModelError("user.email", "Email重複了"); return(BadRequest(ModelState)); } var profile = new Profile { Fullname = model.user.profile.fullname, }; var user = await CreateUserAsync(email, role, profile); return(Ok(user)); }
public async Task <IActionResult> Update(string id, [FromBody] IdentityUserEditViewModel model) { var user = userService.GetUserById(id); if (user == null) { return(NotFound()); } string email = model.user.email; var exist = userService.GetUserByEmail(email); if (exist != null && exist.Id != id) { ModelState.AddModelError("user.email", "Email重複了"); return(BadRequest(ModelState)); } user = model.user.MapToEntity(user); await userService.UpdateUserAsync(user); await SyncUserRoles(user, model.roles); return(Ok(user)); }
async Task SetRole(IdentityUserEditViewModel model, ApplicationUser user) { //foreach (var item in model.roleOptions) //{ // string role = item.value; // bool inRole = await userManager.IsInRoleAsync(user, role); // if (inRole) // { // model.role = role; // return; // } //} }
public IActionResult Create() { var userModel = new IdentityUserViewModel() { profile = new ProfileViewModel() }; var model = new IdentityUserEditViewModel { user = userModel, roleOptions = GetRoleOptions() }; model.roles = new string[] { "Staff" }; return(Ok(model)); }
public async Task <IActionResult> Edit(string id) { var user = userService.GetUserById(id); if (user == null) { return(NotFound()); } var userModel = user.MapIdentityUserViewModel(); var model = new IdentityUserEditViewModel { user = userModel, roleOptions = GetRoleOptions() }; var roles = await GetRolesByUserAsync(user); model.roles = roles.Select(r => r.Name).ToArray(); return(Ok(model)); }