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