Пример #1
0
        public IHttpActionResult PutDefault([FromUri] int id, [FromBody] UpdateAutopilotSettingsModel command)
        {
            if (command != null && id != command.Id)
            {
                ModelState.AddModelError(nameof(UpdateAutopilotSettingsModel.Id), "Model id does not match");
                return(BadRequest(ModelState));
            }

            var autopilotSettings = _autopilotSettingsRepository.Get(id);

            if (autopilotSettings == null)
            {
                return(NotFound());
            }

            if (!_autopilotSettingsValidator.IsValid(command))
            {
                return(_autopilotSettingsValidator.BadRequest());
            }

            autopilotSettings.DefaultFlexibilityLevelId = command.DefaultFlexibilityLevelId;
            autopilotSettings.ScenariosToGenerate       = command.ScenariosToGenerate;
            _autopilotSettingsRepository.Update(autopilotSettings);

            UpdateAutopilotRulesRepository(command.AutopilotRules);

            // Do not remove this, need to persist changes now so that we can return AutopilotSettingsModel
            _autopilotSettingsRepository.SaveChanges();
            _autopilotRuleRepository.SaveChanges();

            return(Ok(Mappings.MapToAutopilotSettingsModel(autopilotSettings, _autopilotRuleRepository, _ruleRepository,
                                                           _ruleTypeRepository, _mapper)));
        }