Ejemplo n.º 1
0
        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));
            }
        }