Beispiel #1
0
        /// <inheritdoc />
        public async Task <MetadataDefinitionDto> HandleResult(AddValidatorCommand command, CancellationToken token)
        {
            var definition = _dynamicMetadataDefinitionService.GetById(command.DefinitionId);

            if (definition == null)
            {
                throw new NotFoundException();
            }


            var validatorConfiguration = _mapper.Map <ValidatorConfiguration>(command.ValidatorData);

            validatorConfiguration.ValidatorId = Guid.NewGuid().ToString();

            bool result = _validationFactory.CreateValidatorFor(validatorConfiguration, definition);

            if (!result)
            {
                throw new BadRequestException("Validator has invalid configuration");
            }

            definition.Validators.Add(validatorConfiguration);
            _dynamicMetadataDefinitionWriteService.UpdateItem(definition, token);

            await _eventDispatcher.DispatchEvent(new RefreshValidationEvent
            {
                DefinitionId = definition.Id
            });

            return(_mapper.Map <MetadataDefinitionDto>(definition));
        }
Beispiel #2
0
        /// <inheritdoc />
        public async Task <MetadataDefinitionDto> HandleResult(UpdateValidatorConfigurationCommand command, CancellationToken token)
        {
            var definition = _dynamicMetadataDefinitionService.GetById(command.DefinitionId);

            if (definition == null)
            {
                throw new NotFoundException();
            }

            var validator = definition.Validators.FirstOrDefault(x => x.ValidatorId == command.ValidatorId);

            if (validator == null)
            {
                throw new NotFoundException();
            }

            validator.Parameters = command.ValidatorConfiguration.Parameters;
            bool result = _validationFactory.CreateValidatorFor(validator, definition);

            if (!result)
            {
                throw new BadRequestException("Validator has invalid configuration");
            }

            _dynamicMetadataDefinitionWriteService.UpdateItem(definition, token);

            await _eventDispatcher.DispatchEvent(new RefreshValidationEvent
            {
                DefinitionId = definition.Id
            });

            return(_mapper.Map <MetadataDefinitionDto>(definition));
        }