예제 #1
0
        public async Task <IActionResult> UpdateApplicationSetting([FromBody] ApplicationSettingDto applicationSettingDto)
        {
            ApplicationSetting applicationSetting = await applicationSettingRepository.GetApplicationSetting(applicationSettingDto.Id);

            if (applicationSetting == null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, $"ApplicationSetting id == {applicationSettingDto.Id}. Not found!"));
            }
            if (applicationSetting.ApplicationId != applicationSettingDto.ApplicationId &&
                applicationSetting.SettingId != applicationSettingDto.SettingId)
            {
                if (await applicationSettingRepository.GetApplicationSetting(applicationSettingDto.ApplicationId,
                                                                             applicationSettingDto.SettingId) != null)
                {
                    Application application = await applicationRepository.GetApplication(applicationSettingDto.ApplicationId);

                    Setting setting = await settingRepository.GetSetting(applicationSettingDto.SettingId);

                    return(StatusCode(StatusCodes.Status500InternalServerError,
                                      $"ApplicationSetting with this Application == {application.Name} and" +
                                      $" Setting  == {setting.Name} already exists"));
                }
            }
            applicationSetting.SetSettingId(applicationSettingDto.SettingId);
            applicationSetting.SetApplicationId(applicationSettingDto.ApplicationId);
            applicationSetting.SetDefaultValue(applicationSettingDto.DefaultValue);
            await applicationSettingRepository.Update(applicationSetting);

            await unitOfWork.SaveEntitiesAsync();

            return(Ok());
        }
        public async Task UpdateApplicationSettings(Dictionary <string, string> applicationSettings, CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();

            foreach (var applicationSetting in applicationSettings)
            {
                var spec   = new ApplicationSettingFilterSpecification(applicationSetting.Key);
                var result = await _applicationSettingRepository.GetSingleBySpec(spec);

                result.Value = applicationSetting.Value;

                await _applicationSettingRepository.Update(result, cancellationToken);
            }
        }