public async Task <StatusResponse> UpdateUser(UpdateInformationFromUserDAO update) { var user = await _userManager.FindByNameAsync(update.UserName); user.IsActive = update.IsActive; _context.Entry(user).State = EntityState.Modified; _context.SaveChanges(); if (update.IsRoleReversal) { var roles = await _userManager.GetRolesAsync(user); bool IsSuccess = true; IdentityResult removeRole = null; IdentityResult addRole = null; foreach (var item in roles) { if (item == update.OldRoleName) { removeRole = await _userManager.RemoveFromRoleAsync(user, update.OldRoleName); addRole = await _userManager.AddToRoleAsync(user, update.NewRoleName); } if (!removeRole.Succeeded || !addRole.Succeeded) { IsSuccess = false; } } if (!IsSuccess) { return(new StatusResponse { StatusCode = HttpStatusCode.Conflict, Message = "Error al intentar actualizar informacion del usuario, favor de verificar" }); } else { return(new StatusResponse { StatusCode = HttpStatusCode.OK, Message = "Información actualizada correctamente" }); } } else { return(new StatusResponse { StatusCode = HttpStatusCode.OK, Message = "Información actualizada correctamente" }); } }
public async Task <IActionResult> UpdateUser([FromBody] UpdateInformationFromUserDAO update) { var response = await _registerRepository.UpdateUser(update); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return(Ok(new Response { Status = response.StatusCode.ToString(), Message = response.Message })); } else { return(StatusCode((int)response.StatusCode, new Response { Status = response.StatusCode.ToString(), Message = response.Message })); } }