public async Task <IActionResult> Update([FromBody] Accounts inputModel) { try { var data = await _accountsManager.Find_By_Id(inputModel.Id); if (data == null) { throw new Exception(MessageConst.DATA_NOT_FOUND); } if (string.IsNullOrEmpty(inputModel.UserName)) { throw new Exception($"Tên tài khoản {MessageConst.NOT_EMPTY_INPUT}"); } if (Validation.HasSpecialChar(inputModel.UserName)) { throw new Exception($"Tên tải khoản {MessageConst.SPECIAL_CHAR}"); } var exist = await _accountsManager.Find_By_Name(inputModel.UserName); if (exist != null && (!inputModel.UserName.Equals(exist.UserName))) { throw new Exception($"Tên tài khoản {MessageConst.EXIST}"); } if (!Validation.IsValidEmail(inputModel.Email)) { throw new Exception($"Email không hợp lệ"); } var checkEmail = await _accountsManager.FindByEmail(inputModel.Email); if (checkEmail != null && !inputModel.Email.Equals(checkEmail.Email)) { throw new Exception($"Email đã được dùng cho tài khoản khác"); } inputModel.UpdatedDate = DateTime.Now; inputModel.FullName = Extensions.StringStandar(inputModel.FullName, 1); inputModel.CreatedDate = data.CreatedDate; await _accountsManager.Update(inputModel); await CreateAccountRole(inputModel.Id, inputModel.ListRoleId); return(Ok()); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }