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)); }
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()); }
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); }
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)); }
public IActionResult Filtrar(FiltroCicloDto filtroCicloDto) { return(Ok(consultasCiclo.Listar(filtroCicloDto))); }
public IEnumerable <CicloDto> Listar(FiltroCicloDto filtroCicloDto) { return(repositorioCiclo.ObterCiclosPorAnoModalidade(filtroCicloDto)); }