public async Task Deve_Incluir_Calendario_E_Feriados_Moveis()
        {
            _fixture._clientApi.DefaultRequestHeaders.Clear();

            _fixture._clientApi.DefaultRequestHeaders.Authorization =
                new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.TCE_C, Permissao.TCE_I, Permissao.TCE_E, Permissao.TF_C }));

            var calendarioParaIncluir = new TipoCalendarioDto()
            {
                AnoLetivo        = 2019,
                DescricaoPeriodo = "Teste",
                Modalidade       = Dominio.ModalidadeTipoCalendario.EJA,
                Nome             = "Calendário de teste",
                Periodo          = Dominio.Periodo.Anual,
                Situacao         = true
            };

            var jsonParaPostCalendario     = new StringContent(TransformarEmJson(calendarioParaIncluir), Encoding.UTF8, "application/json");
            var postResultIncluiCalendario = await _fixture._clientApi.PostAsync("api/v1/calendarios/tipos/", jsonParaPostCalendario);

            Assert.True(postResultIncluiCalendario.IsSuccessStatusCode);

            if (postResultIncluiCalendario.IsSuccessStatusCode)
            {
                var buscarTodosCalendariosResultado = await _fixture._clientApi.GetAsync($"api/v1/calendarios/tipos");

                Assert.True(buscarTodosCalendariosResultado.IsSuccessStatusCode);
                if (buscarTodosCalendariosResultado.IsSuccessStatusCode)
                {
                    var dtoTodos = JsonConvert.DeserializeObject <IEnumerable <TipoCalendarioDto> >(await buscarTodosCalendariosResultado.Content.ReadAsStringAsync());
                    Assert.True(dtoTodos.Any());

                    var filtroFeriadoCalendarioDto = new FiltroFeriadoCalendarioDto()
                    {
                        Tipo = Dominio.TipoFeriadoCalendario.Movel, Ano = 2019
                    };

                    var jsonParaPostFiltroFeriados = new StringContent(TransformarEmJson(filtroFeriadoCalendarioDto), Encoding.UTF8, "application/json");

                    Thread.Sleep(2000);

                    var postResultBuscaFeriados = await _fixture._clientApi.PostAsync("api/v1/calendarios/feriados/listar", jsonParaPostFiltroFeriados);

                    Assert.True(postResultBuscaFeriados.IsSuccessStatusCode);
                    if (postResultBuscaFeriados.IsSuccessStatusCode)
                    {
                        var dtoFeriados = JsonConvert.DeserializeObject <IEnumerable <FeriadoCalendarioDto> >(await postResultBuscaFeriados.Content.ReadAsStringAsync());
                        Assert.True(dtoFeriados.Count() == 4);
                    }
                }
            }
        }
        public async Task <IActionResult> BuscarTodos([FromBody] FiltroFeriadoCalendarioDto filtro)
        {
            var retorno = await consultas.Listar(filtro);

            if (retorno.Any())
            {
                return(Ok(retorno));
            }
            else
            {
                return(StatusCode(204));
            }
        }
        public async Task <IEnumerable <FeriadoCalendario> > ObterFeriadosCalendario(FiltroFeriadoCalendarioDto filtro)
        {
            if (!string.IsNullOrEmpty(filtro.Nome))
            {
                filtro.Nome = $"%{filtro.Nome.ToUpper()}%";
            }

            StringBuilder query = new StringBuilder();

            query.AppendLine("select");
            query.AppendLine("id,");
            query.AppendLine("nome,");
            query.AppendLine("abrangencia,");
            query.AppendLine("data_feriado,");
            query.AppendLine("tipo,");
            query.AppendLine("ativo");
            query.AppendLine("from feriado_calendario");
            query.AppendLine("where excluido = false");

            if (!string.IsNullOrEmpty(filtro.Nome))
            {
                query.AppendLine("and upper(f_unaccent(nome)) LIKE f_unaccent(@Nome)");
            }

            if (filtro.Abrangencia > 0)
            {
                query.AppendLine("and abrangencia = @Abrangencia");
            }

            if (filtro.Tipo > 0)
            {
                query.AppendLine("and tipo = @Tipo");
            }

            if (filtro.Ano > 0)
            {
                query.AppendLine("and EXTRACT(year FROM data_feriado) = @Ano");
            }

            var listaRetorno = await database.Conexao.QueryAsync <FeriadoCalendario>(query.ToString(), new
            {
                filtro.Nome,
                filtro.Abrangencia,
                filtro.Tipo,
                filtro.Ano
            });

            return(listaRetorno);
        }
Beispiel #4
0
 public async Task <IEnumerable <FeriadoCalendarioDto> > Listar(FiltroFeriadoCalendarioDto filtro)
 {
     return(MapearParaDto(await repositorio.ObterFeriadosCalendario(filtro)));
 }
Beispiel #5
0
        public async Task Deve_Incluir_Excluir_Consular_Feriado_Calendario()
        {
            _fixture._clientApi.DefaultRequestHeaders.Clear();

            _fixture._clientApi.DefaultRequestHeaders.Authorization =
                new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.TF_A, Permissao.TF_I, Permissao.TF_E, Permissao.TF_C }));

            var feriadoCalendarioDto = new FeriadoCalendarioDto
            {
                DataFeriado = DateTime.Now,
                Nome        = "Feriado do dia de hoje teste 1",
                Ativo       = true,
                Abrangencia = AbrangenciaFeriadoCalendario.Nacional,
                Tipo        = TipoFeriadoCalendario.Fixo
            };

            var feriadoCalendarioDto2 = new FeriadoCalendarioDto
            {
                DataFeriado = DateTime.Now,
                Nome        = "Feriado do dia de hoje teste 2",
                Ativo       = true,
                Abrangencia = AbrangenciaFeriadoCalendario.Estadual,
                Tipo        = TipoFeriadoCalendario.Fixo
            };

            var filtro = new FiltroFeriadoCalendarioDto
            {
                Nome = "hoje"
            };

            var jsonParaPost = new StringContent(TransformarEmJson(feriadoCalendarioDto), Encoding.UTF8, "application/json");
            var postResult   = await _fixture._clientApi.PostAsync("api/v1/calendarios/feriados/", jsonParaPost);

            Assert.True(postResult.IsSuccessStatusCode);

            if (postResult.IsSuccessStatusCode)
            {
                var jsonParaPost2 = new StringContent(TransformarEmJson(feriadoCalendarioDto2), Encoding.UTF8, "application/json");
                var postResult2   = await _fixture._clientApi.PostAsync("api/v1/calendarios/feriados/", jsonParaPost2);

                Assert.True(postResult2.IsSuccessStatusCode);

                if (postResult2.IsSuccessStatusCode)
                {
                    var ids = new int[1];
                    ids[0] = 12;
                    var jsonDelete             = new StringContent(JsonConvert.SerializeObject(ids), Encoding.UTF8, "application/json");
                    HttpRequestMessage request = new HttpRequestMessage
                    {
                        Content    = jsonDelete,
                        Method     = HttpMethod.Delete,
                        RequestUri = new Uri($"{ _fixture._clientApi.BaseAddress}api/v1/calendarios/feriados/")
                    };

                    var deleteResult = await _fixture._clientApi.SendAsync(request);

                    Assert.True(deleteResult.IsSuccessStatusCode);

                    var jsonGetAll   = new StringContent(JsonConvert.SerializeObject(filtro), Encoding.UTF8, "application/json");
                    var getAllResult = await _fixture._clientApi.PostAsync($"api/v1/calendarios/feriados/listar", jsonGetAll);

                    var dtoTodos = JsonConvert.DeserializeObject <IEnumerable <FeriadoCalendarioDto> >(getAllResult.Content.ReadAsStringAsync().Result);

                    Assert.True(dtoTodos.Any());

                    var getOneResult = await _fixture._clientApi.GetAsync($"api/v1/calendarios/feriados/{dtoTodos.FirstOrDefault().Id}");

                    var dtoUm = JsonConvert.DeserializeObject <TipoCalendarioCompletoDto>(getOneResult.Content.ReadAsStringAsync().Result);

                    Assert.NotNull(dtoUm.Nome);
                }
            }
        }