示例#1
0
        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));
        }