private IEnumerable <ValidationResult> Validate(ModuleSourceAddCommand command)
        {
            var validationResultsBuilder = new ValidationResultsBuilder();

            validationResultsBuilder.Validate(ModuleSourceName.IsValid, command.Name, nameof(command.Name));
            validationResultsBuilder.Validate(FileSystemModuleSourceLocation.IsValid, command.Location, nameof(command.Location));

            return(validationResultsBuilder.GetValidationResults());
        }
Exemple #2
0
        public async Task <IActionResult> Create(ModuleSourceCreateModel model)
        {
            var id            = Guid.NewGuid();
            var command       = new ModuleSourceAddCommand(id, model.Name, model.Location);
            var commandResult = await _messageDispatcher.DispatchAsync(command);

            if (commandResult.IsSuccess)
            {
                return(RedirectToAction(nameof(Details), new { id }));
            }

            return(GetActionResult(commandResult, model));
        }
        public IDispatchResult Handle(ModuleSourceAddCommand command)
        {
            var validationResults = Validate(command);

            if (validationResults.Any())
            {
                return(ValidationFailure(validationResults));
            }

            var moduleSourceName     = new ModuleSourceName(command.Name);
            var moduleSourceLocation = new FileSystemModuleSourceLocation(command.Location);

            Entity = new FileSystemModuleSource(command.Id, moduleSourceName, moduleSourceLocation);

            return(Success());
        }