Exemple #1
0
        public async Task <ProcessResult <AppUserDTO> > UpdateCurrentUserAsync(AppUserForUpdate model)
        {
            async Task <AppUserDTO> action()
            {
                var now = DateTime.UtcNow;

                var countUserExists = await _repoWrapper.AppUser.FindByCondition(u => u.Id != model.Id && u.Email == model.Email).CountAsync();

                if (countUserExists > 0)
                {
                    throw new InvalidOperationException("Email is exists");
                }

                var user = _mapper.Map(model, CurrentUser);

                user.ModifyDate = now;
                user.ModifyBy   = CurrentUser.UserName;
                user.Version   += 1;

                _repoWrapper.AppUser.Update(user);
                return(await _repoWrapper.SaveAsync() > 0
                    ? _mapper.Map <AppUserDTO>(user)
                    : throw new InvalidOperationException("Save fail"));
            }

            return(await Process.RunAsync(action));
        }
        public async Task <ActionResult <AppUserDTO> > UpdateUserAsync(Guid id, AppUserForUpdate model)
        {
            if (model.Id != id)
            {
                return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", "Id Invalid")));
            }
            var result = await _appUserService.UpdateAsync(model);

            if (result.Succeed == false)
            {
                return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", result.Errors)));
            }

            return(Ok(result.Value));
        }
        public async Task <ActionResult <AppUserDTO> > UpdateCurrentUserAsync(Guid id, AppUserForUpdate model)
        {
            if (!id.Equals(model.Id))
            {
                return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Invalid id")));
            }

            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 _appUserService.UpdateCurrentUserAsync(model);

            return(result.Succeed ? Ok(result.Value) : BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", result.Errors)));
        }