コード例 #1
0
 public void UpdateAppConfig(AppConfig entity, UpdateAppConfigModel model)
 {
     model.CopyTo(entity);
     if (!string.IsNullOrWhiteSpace(model.ClientSecretReset))
     {
         entity.ClientSecret = model.ClientSecretReset;
     }
     PrepareUpdate(entity);
 }
コード例 #2
0
        public ValidationData ValidateUpdateAppConfig(ClaimsPrincipal principal,
                                                      AppConfig entity, UpdateAppConfigModel model)
        {
            var validationData = new ValidationData();

            if (string.IsNullOrWhiteSpace(model.ClientId))
            {
                validationData.Fail("Client ID must not be null", Constants.AppResultCode.FailValidation);
            }
            if (string.IsNullOrWhiteSpace(model.Name))
            {
                validationData.Fail("Name must not be null", Constants.AppResultCode.FailValidation);
            }
            return(validationData);
        }
コード例 #3
0
        private async Task <TResponse <bool> > CanUpdate(UpdateAppConfigModel request)
        {
            try
            {
                var appConfig = await _appConfigCacheService.GetByName(request.Name);

                if (appConfig != null &&
                    appConfig.Id != request.Id)
                {
                    return(await Fail <bool>(ErrorEnum.APP_CONFIG_HAS_EXIST.GetStringValue()));
                }

                return(await Ok(true));
            }
            catch (Exception exception)
            {
                return(await Fail <bool>(exception));
            }
        }
コード例 #4
0
        public IActionResult Update(int id, UpdateAppConfigModel model)
        {
            var entity = _service.AppConfigs.Id(id).FirstOrDefault();

            if (entity == null)
            {
                return(NotFound(AppResult.NotFound()));
            }
            var validationData = _service.ValidateUpdateAppConfig(User, entity, model);

            if (!validationData.IsValid)
            {
                return(BadRequest(AppResult.FailValidation(data: validationData)));
            }
            _service.UpdateAppConfig(entity, model);
            context.SaveChanges();
            // must be in transaction
            var ev = _ev_service.UpdateAppConfig(entity, User);

            context.SaveChanges();
            return(NoContent());
        }
コード例 #5
0
        public async Task <TResponse <bool> > Update(int userId,
                                                     UpdateAppConfigModel request,
                                                     int permissionId)
        {
            try
            {
                var checkValid = await _userService.CheckPermission(userId,
                                                                    permissionId);

                if (checkValid.IsSuccess)
                {
                    var canUpdate = await CanUpdate(request);

                    if (canUpdate.IsSuccess)
                    {
                        var result = await WriteRepository.ExecuteAsync(SqlQuery.APP_CONFIG_UPDATE,
                                                                        new
                        {
                            request.Id,
                            request.Name,
                            request.Value,
                            request.Description,
                            UserUpdated = userId,
                            DateUpdated = DateTime.Now
                        });

                        if (result.IsSuccess)
                        {
                            if (result.Data > 0)
                            {
                                #region Update redis cache

                                await _appConfigCacheService.AddOrUpdate(new AppConfigCacheModel
                                {
                                    Id          = request.Id,
                                    Name        = request.Name,
                                    Value       = request.Value,
                                    Description = request.Description
                                });

                                #endregion

                                return(await Ok(true));
                            }

                            return(await Fail <bool>(ErrorEnum.BAD_REQUEST.GetStringValue()));
                        }

                        return(await Fail <bool>(result.Message));
                    }

                    return(await Fail <bool>(canUpdate.Message));
                }

                return(await Fail <bool>(checkValid.Message));
            }
            catch (Exception exception)
            {
                return(await Fail <bool>(exception));
            }
        }
コード例 #6
0
 public async Task <ActionResult <bool> > Update(UpdateAppConfigModel request)
 {
     return(Ok(await _appConfigService.Update(await GetUserId(),
                                              request,
                                              GetPermissionId())));
 }