public async Task <ActionResult <ContactUs> > UpdateAsync(Guid id, ContactUsForUpdate model)
        {
            if (id != model.Id)
            {
                return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Id Invalid")));
            }

            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList();
                return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Validation error", errors)));
            }

            var result = await _contactUsService.UpdateContacUsAsync(model);

            return(result.Succeed ? Ok(result.Value) : BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", result.Errors)));
        }
        public async Task <ProcessResult <ContactUs> > UpdateContacUsAsync(ContactUsForUpdate model)
        {
            async Task <ContactUs> action()
            {
                var contactUs = await _repoWrapper.ContactUs.FindContactUsByIdAsync(model.Id);

                if (contactUs == null)
                {
                    throw new Exception("Id is not exist");
                }

                _ = _mapper.Map(model, contactUs);

                contactUs.ModifyBy   = CurrentUser.UserName;
                contactUs.ModifyDate = DateTime.UtcNow;

                _repoWrapper.ContactUs.Update(contactUs);

                return(await _repoWrapper.SaveAsync() > 0 ? contactUs : throw new Exception("Save fail"));
            }

            return(await Process.RunAsync(action));
        }