/// <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)); }
/// <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)); }