public ICommandResult Handler(InserirLiberacaoReleaseCommand command) { command.Validate(); if (command.Invalid) { AddNotifications(command); return(new CommandResult(false, "Não foi possivel inserir os dados", command.Notifications)); } var query = VersaoQueries.Selecionar(command.Versao.Id); var versao = _versaoProjetoRepository.Selecionar(query); if (versao == null) { return(new CommandResult(false, $"Versão não encontrada")); } var liberacaoRelease = new LiberacaoRelease { Versao = command.Versao, Data = DateTime.Now, Itens = new ItensLiberacaoRelease().Parse(command.Itens) }; if (!_liberacaoReleaseRepository.Cadastar(liberacaoRelease)) { return(new CommandResult(false, "Ocorreu erro ao cadastrar os dados da liberação de release.")); } return(new CommandResult(true, "Liberação de release cadastrado com sucesso.")); }
public ICommandResult Handler(AnalisarReleasesCommand command) { command.Validate(); if (command.Invalid) { AddNotifications(command); return(new CommandResult(false, "Não foi possivel analisar as releases", command.Notifications)); } var query = VersaoQueries.Selecionar(command.Id); var versao = _versaoProjetoRepository.Selecionar(query); if (versao == null) { return(new CommandResult(false, $"Versão não encontrada")); } var projetos = _projetoRepository.Selecionar(versao).ToList(); if (!projetos.Any()) { return(new CommandResult(false, "Nenhum projeto encontrado")); } var releaseAnalizerService = new ReleaseAnalizerService(versao, projetos); var analizerServiceResult = releaseAnalizerService.Run(); if (releaseAnalizerService.Notifications.Any()) { return(new CommandResult(false, "Não foi possivel analisar as releases", releaseAnalizerService.Notifications)); } var itens = new ItensLiberacaoReleaseViewModel().Parse(analizerServiceResult); return(new CommandResult(true, itens)); }