public IEnumerable <CicloDto> ObterCiclosPorAnoModalidade(FiltroCicloDto filtroCicloDto)
        {
            var anos = "'" + string.Join("','", filtroCicloDto.Anos) + "'";

            StringBuilder query = new StringBuilder();

            query.AppendLine("SELECT");
            query.AppendLine("	tc.id,");
            query.AppendLine("	tc.descricao,");
            query.AppendLine("	1 AS Selecionado");
            query.AppendLine("from ");
            query.AppendLine("	tipo_ciclo tc inner join tipo_ciclo_ano tca on tc.id = tca.tipo_ciclo_id ");
            query.AppendLine("WHERE ");
            query.AppendLine($"  tca.Ano = '{filtroCicloDto.AnoSelecionado}'");
            query.AppendLine($"  AND modalidade = {filtroCicloDto.Modalidade}");
            query.AppendLine(" UNION ");
            query.AppendLine("SELECT");
            query.AppendLine("	tc.id,");
            query.AppendLine("	tc.descricao,");
            query.AppendLine("	0 AS Selecionado");
            query.AppendLine("from ");
            query.AppendLine("	tipo_ciclo tc inner join tipo_ciclo_ano tca on tc.id = tca.tipo_ciclo_id ");
            query.AppendLine("WHERE ");
            query.AppendLine($"  tca.Ano IN ({anos})");
            query.AppendLine($"  AND modalidade = {filtroCicloDto.Modalidade} ");
            query.AppendLine($"ORDER BY Selecionado DESC");
            return(database.Conexao.Query <CicloDto>(query.ToString()).ToList());
        }
        public IActionResult Filtrar(FiltroCicloDto filtroCicloDto)
        {
            var retorno = consultasCiclo.Listar(filtroCicloDto);

            if (retorno == null || !retorno.Any())
            {
                return(NoContent());
            }

            return(Ok(retorno));
        }
Пример #3
0
        public IEnumerable <CicloDto> ObterCiclosPorAnoModalidade(FiltroCicloDto filtroCicloDto)
        {
            var anos = "'" + string.Join("','", filtroCicloDto.Anos) + "'";

            StringBuilder query = new StringBuilder();

            query.AppendLine("SELECT distinct");
            query.AppendLine("	tc.id,");
            query.AppendLine("	tc.descricao,");
            query.AppendLine("	1 AS Selecionado");
            query.AppendLine("from ");
            query.AppendLine("	tipo_ciclo tc inner join tipo_ciclo_ano tca on tc.id = tca.tipo_ciclo_id ");
            query.AppendLine("WHERE ");
            query.AppendLine($"  tca.Ano = '{filtroCicloDto.AnoSelecionado}'");
            query.AppendLine($"  AND modalidade = {filtroCicloDto.Modalidade}");

            var cicloSelecionado = database.Conexao.QueryFirstOrDefault <CicloDto>(query.ToString());

            query.Clear();
            query.AppendLine("SELECT distinct");
            query.AppendLine("	tc.id,");
            query.AppendLine("	tc.descricao,");
            query.AppendLine("	0 AS Selecionado");
            query.AppendLine("from ");
            query.AppendLine("	tipo_ciclo tc inner join tipo_ciclo_ano tca on tc.id = tca.tipo_ciclo_id ");
            query.AppendLine("WHERE ");
            query.AppendLine($"  tca.Ano IN ({anos})");
            query.AppendLine($"  AND modalidade = {filtroCicloDto.Modalidade}");
            if (cicloSelecionado != null)
            {
                query.AppendLine($"  AND tc.id <> {cicloSelecionado.Id}");
            }

            var ciclosNaoSelecionados = database.Conexao.Query <CicloDto>(query.ToString());

            var ciclosRetorno = new List <CicloDto>();

            if (cicloSelecionado != null)
            {
                ciclosRetorno.Add(cicloSelecionado);
            }

            if (ciclosNaoSelecionados.Any())
            {
                ciclosRetorno.AddRange(ciclosNaoSelecionados.ToList());
            }

            return(ciclosRetorno.AsEnumerable());
        }
Пример #4
0
        public IEnumerable <CicloDto> Listar(FiltroCicloDto filtroCicloDto)
        {
            var lista = repositorioCiclo.ObterCiclosPorAnoModalidade(filtroCicloDto);

            if (!lista.Any())
            {
                throw new NegocioException("Não foi possível localizar o ciclo da turma selecionada");
            }

            if (!lista.Any(ciclos => ciclos.Selecionado))
            {
                lista.First().Selecionado = true;
            }

            return(lista);
        }
Пример #5
0
        public async void Ciclos_Retornar_Ciclos()
        {
            // Arrange
            List <string> anos = new List <string>();

            for (int ano = 1; ano <= 9; ano++)
            {
                anos.Add(ano.ToString());
            }
            FiltroCicloDto filtroCiclo = new FiltroCicloDto {
                Anos = anos, AnoSelecionado = "1", Modalidade = 5
            };

            // Act
            fixture._clientApi.DefaultRequestHeaders.Clear();
            var jsonParaPost = new StringContent(JsonConvert.SerializeObject(filtroCiclo), Encoding.UTF8, "application/json");

            fixture._clientApi.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", fixture.GerarToken(new Permissao[] { }));
            var result = await fixture._clientApi.PostAsync("api/v1/ciclos/filtro", jsonParaPost);

            // Assert
            Assert.True(fixture.ValidarStatusCodeComSucesso(result));
        }
Пример #6
0
 public IActionResult Filtrar(FiltroCicloDto filtroCicloDto)
 {
     return(Ok(consultasCiclo.Listar(filtroCicloDto)));
 }
Пример #7
0
 public IEnumerable <CicloDto> Listar(FiltroCicloDto filtroCicloDto)
 {
     return(repositorioCiclo.ObterCiclosPorAnoModalidade(filtroCicloDto));
 }