public void Deve_Incluir_Calendario_Fundamental_E_Retornar_Acima_200_dias_letivos()
        {
            MontarCabecalho();
            TipoCalendarioDto tipoCalendario = AdicionarTipoCalendario(ano);

            var jsonParaPost = new StringContent(JsonConvert.SerializeObject(tipoCalendario), Encoding.UTF8, "application/json");
            var postResult   = _fixture._clientApi.PostAsync("api/v1/calendarios/tipos", jsonParaPost).Result;

            Assert.True(postResult.IsSuccessStatusCode);

            if (postResult.IsSuccessStatusCode)
            {
                PeriodoEscolarListaDto periodoEscolar = AdicionarPerioEscolar(ano);

                var jsonParaPost2 = new StringContent(JsonConvert.SerializeObject(periodoEscolar), Encoding.UTF8, "application/json");
                var postResult2   = _fixture._clientApi.PostAsync("api/v1/periodo-escolar", jsonParaPost2).Result;
                Assert.True(postResult2.IsSuccessStatusCode);

                var filtro = new FiltroDiasLetivosDTO()
                {
                    TipoCalendarioId = 1
                };

                var filtroPeriodoEscolar = new StringContent(JsonConvert.SerializeObject(filtro), Encoding.UTF8, "application/json");
                var diasLetivosResponse  = _fixture._clientApi.PostAsync("api/v1/calendarios/dias-letivos", filtroPeriodoEscolar).Result;
                if (diasLetivosResponse.IsSuccessStatusCode)
                {
                    var diasLetivos = JsonConvert.DeserializeObject <DiasLetivosDto>(diasLetivosResponse.Content.ReadAsStringAsync().Result);
                    Assert.True(diasLetivos.Dias > 0);
                }
            }
        }
Example #2
0
        public void Deve_Incluir_Tipo_Calendario_e_Periodo_Escolar_e_Editar_Periodo_Escolar()
        {
            try
            {
                _fixture._clientApi.DefaultRequestHeaders.Clear();

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

                AdicionarTipoCalendario();

                _fixture._clientApi.DefaultRequestHeaders.Clear();

                _fixture._clientApi.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.PE_I, Permissao.PE_A }));

                PeriodoEscolarListaDto Dto = AdicionarPeriodo();

                EditarPeriodo(Dto);
            }
            catch (AggregateException ae)
            {
                throw new Exception("Erros: " + string.Join(",", ae.InnerExceptions));
            }
        }
Example #3
0
        //[Fact, Order(2)]
        //public void Deve_Consultar_Periodo_Escolar()
        //{
        //    _fixture._clientApi.DefaultRequestHeaders.Clear();

        //    _fixture._clientApi.DefaultRequestHeaders.Authorization =
        //        new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.PE_I, Permissao.PE_C }));

        //    var getResult = _fixture._clientApi.GetAsync("api/v1/periodo-escolar?codigoTipoCalendario=1").Result;

        //    Assert.True(getResult.IsSuccessStatusCode);
        //}

        //[Fact(DisplayName ="Incluir tipo de calendário e período escola e editar o periodo escolar", Skip ="Quebrando os testes na versão v2.0"), Order(2)]
        //public void Deve_Incluir_Tipo_Calendario_e_Periodo_Escolar_e_Editar_Periodo_Escolar()
        //{
        //    try
        //    {
        //        _fixture._clientApi.DefaultRequestHeaders.Clear();

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

        //        AdicionarTipoCalendario();

        //        _fixture._clientApi.DefaultRequestHeaders.Clear();

        //        _fixture._clientApi.DefaultRequestHeaders.Authorization =
        //            new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.PE_I, Permissao.PE_A }));

        //        PeriodoEscolarListaDto Dto = AdicionarPeriodo();

        //        EditarPeriodo(Dto);
        //    }
        //    catch (AggregateException ae)
        //    {
        //        throw new Exception("Erros: " + string.Join(",", ae.InnerExceptions));
        //    }
        //}

        private PeriodoEscolarListaDto AdicionarPeriodo()
        {
            PeriodoEscolarListaDto Dto = ObtenhaDto();

            var jsonParaPost2 = new StringContent(JsonConvert.SerializeObject(Dto), Encoding.UTF8, "application/json");

            var postResult2 = _fixture._clientApi.PostAsync("api/v1/periodo-escolar", jsonParaPost2).Result;

            Assert.True(postResult2.IsSuccessStatusCode);
            return(Dto);
        }
        public void Salvar(PeriodoEscolarListaDto periodosDto)
        {
            if (periodosDto.TipoCalendario == 0)
            {
                throw new NegocioException("É necessario informar o tipo de calendario");
            }

            var listaPeriodoEscolar = MapearListaPeriodos(periodosDto);

            servicoPeriodoEscolar.SalvarPeriodoEscolar(listaPeriodoEscolar, periodosDto.TipoCalendario);
        }
        //TODO VOLTAR A UTILIZAR QUANDO O TESTE DE USUÁRIO FUNCIONAR
        //public static void AdicionarAula(TestServerFixture _fixture)
        //{
        //    var aula = new AulaDto
        //    {
        //        UeId = "094765",
        //        DisciplinaId = "7",
        //        TurmaId = "1992725",
        //        TipoCalendarioId = 1,
        //        TipoAula = Dominio.TipoAula.Normal,
        //        Quantidade = 2,
        //        DataAula = DateTime.Now.Date,
        //        RecorrenciaAula = RecorrenciaAula.AulaUnica
        //    };

        //    var respostaCadastroAula = ExecutePostAsync(_fixture, $"api/v1/calendarios/professores/aulas", aula);
        //    Assert.True(respostaCadastroAula.IsSuccessStatusCode);
        //}

        public static PeriodoEscolarListaDto AdicionarPeriodoEscolar(TestServerFixture _fixture)
        {
            _fixture = ObtenhaCabecalhoAuthentication(_fixture, new Permissao[] { Permissao.PE_I });

            PeriodoEscolarListaDto dto = ObterPeriodoEscolarDto();

            var postResult = ExecutePostAsync(_fixture, "api/v1/periodo-escolar", dto);

            Assert.True(postResult.IsSuccessStatusCode);
            return(dto);
        }
        public async Task Salvar(PeriodoEscolarListaDto periodosDto)
        {
            var periodosOrdenados = periodosDto.Periodos.OrderBy(p => p.Bimestre);

            periodosDto.Periodos = periodosOrdenados.ToList();
            if (periodosDto.TipoCalendario == 0)
            {
                throw new NegocioException("É necessario informar o tipo de calendario");
            }

            var listaPeriodoEscolar = MapearListaPeriodos(periodosDto);

            await servicoPeriodoEscolar.SalvarPeriodoEscolar(listaPeriodoEscolar, periodosDto.TipoCalendario);
        }
        private IEnumerable <PeriodoEscolar> MapearListaPeriodos(PeriodoEscolarListaDto periodosDto)
        {
            var retorno = new List <PeriodoEscolar>();

            foreach (var periodo in periodosDto.Periodos)
            {
                if (periodo.Id > 0)
                {
                    retorno.Add(ObterPeriodo(periodo.Id, periodo));
                }
                else
                {
                    retorno.Add(MapearParaDominio(periodo, periodosDto.TipoCalendario));
                }
            }

            return(retorno);
        }
Example #8
0
        private void EditarPeriodo(PeriodoEscolarListaDto Dto)
        {
            Dto.Periodos[0].Id            = 1;
            Dto.Periodos[0].PeriodoInicio = DateTime.Now.AddMinutes(0);
            Dto.Periodos[0].PeriodoFim    = DateTime.Now.AddMinutes(1);
            Dto.Periodos[1].Id            = 2;
            Dto.Periodos[1].PeriodoInicio = DateTime.Now.AddMinutes(2);
            Dto.Periodos[1].PeriodoFim    = DateTime.Now.AddMinutes(3);
            Dto.Periodos[2].Id            = 3;
            Dto.Periodos[2].PeriodoInicio = DateTime.Now.AddMinutes(4);
            Dto.Periodos[2].PeriodoFim    = DateTime.Now.AddMinutes(5);
            Dto.Periodos[3].Id            = 4;
            Dto.Periodos[3].PeriodoInicio = DateTime.Now.AddMinutes(6);
            Dto.Periodos[3].PeriodoFim    = DateTime.Now.AddMinutes(7);

            var jsonParaPost3 = new StringContent(JsonConvert.SerializeObject(Dto), Encoding.UTF8, "application/json");

            var postResult3 = _fixture._clientApi.PostAsync("api/v1/periodo-escolar", jsonParaPost3).Result;

            Assert.True(postResult3.IsSuccessStatusCode);
        }
        //[Fact, Order(1)]
        //public async Task Deve_Incluir_Calendario_Fundamental_E_Retornar_Acima_200_dias_letivos()
        //{
        //    try
        //    {


        //        MontarCabecalho();
        //        TipoCalendarioDto tipoCalendario = AdicionarTipoCalendario(ano);

        //        var jsonParaPost = new StringContent(JsonConvert.SerializeObject(tipoCalendario), Encoding.UTF8, "application/json");
        //        var postResult = await _fixture._clientApi.PostAsync("api/v1/calendarios/tipos", jsonParaPost);

        //        Assert.True(postResult.IsSuccessStatusCode);

        //        if (postResult.IsSuccessStatusCode)
        //        {

        //           PeriodoEscolarListaDto periodoEscolar = AdicionarPerioEscolar(ano);

        //            var jsonParaPost2 = new StringContent(JsonConvert.SerializeObject(periodoEscolar), Encoding.UTF8, "application/json");
        //            var postResult2 = await _fixture._clientApi.PostAsync("api/v1/periodo-escolar", jsonParaPost2);
        //            Assert.True(postResult2.IsSuccessStatusCode);

        //            var filtro = new FiltroDiasLetivosDTO()
        //            {
        //                TipoCalendarioId = 1
        //            };

        //            var filtroPeriodoEscolar = new StringContent(JsonConvert.SerializeObject(filtro), Encoding.UTF8, "application/json");
        //            var diasLetivosResponse = await _fixture._clientApi.PostAsync("api/v1/calendarios/dias-letivos", filtroPeriodoEscolar);
        //            if (diasLetivosResponse.IsSuccessStatusCode)
        //            {
        //                var diasLetivos = JsonConvert.DeserializeObject<DiasLetivosDto>(await diasLetivosResponse.Content.ReadAsStringAsync());
        //                Assert.True(diasLetivos.Dias > 0);
        //            }
        //        }
        //    }
        //    catch (Exception ex)
        //    {

        //        throw;
        //    }
        //}

        private static PeriodoEscolarListaDto AdicionarPerioEscolar(int ano)
        {
            var periodoEscolar = new PeriodoEscolarListaDto
            {
                TipoCalendario = 1,
                Periodos       = new List <PeriodoEscolarDto>
                {
                    new PeriodoEscolarDto
                    {
                        Bimestre      = 1,
                        PeriodoInicio = new DateTime(ano, 1, 30),
                        PeriodoFim    = new DateTime(ano, 4, 30) //61 dias úteis
                    },
                    new PeriodoEscolarDto
                    {
                        Bimestre      = 2,
                        PeriodoInicio = new DateTime(ano, 5, 1),
                        PeriodoFim    = new DateTime(ano, 6, 30) //42 dias úteis
                    },
                    new PeriodoEscolarDto
                    {
                        Bimestre      = 3,
                        PeriodoInicio = new DateTime(ano, 8, 1),  //43 dias úteis
                        PeriodoFim    = new DateTime(ano, 9, 30)
                    },
                    new PeriodoEscolarDto
                    {
                        Bimestre      = 4,
                        PeriodoInicio = new DateTime(ano, 10, 1), //53 dias úteis
                        PeriodoFim    = new DateTime(ano, 12, 15) //aumentar
                    },
                }
            };

            return(periodoEscolar);
        }
Example #10
0
        public async Task <IActionResult> Post([FromBody] PeriodoEscolarListaDto periodos, [FromServices] IComandosPeriodoEscolar comandoPeriodo)
        {
            await comandoPeriodo.Salvar(periodos);

            return(Ok());
        }
 public IActionResult Post([FromBody] PeriodoEscolarListaDto periodos, [FromServices] IComandosPeriodoEscolar comandoPeriodo)
 {
     comandoPeriodo.Salvar(periodos);
     return(Ok());
 }
Example #12
0
        private async Task <IEnumerable <DataAulasProfessorDto> > ObterAulasNosPeriodos(PeriodoEscolarListaDto periodosEscolares, int anoLetivo, string turmaCodigo, string disciplinaCodigo, Usuario usuarioLogado, string usuarioRF)
        {
            if (disciplinaCodigo.ToCharArray().Any(a => !char.IsDigit(a)))
            {
                throw new NegocioException("Código da disciplina inválido");
            }

            var disciplina = await consultasDisciplina.ObterDisciplina(Convert.ToInt64(disciplinaCodigo));

            if (disciplina == null)
            {
                throw new NegocioException("Disciplina não encontrada");
            }

            var aulasRetorno = new List <DataAulasProfessorDto>();

            periodosEscolares.Periodos.ForEach(p =>
            {
                var aulas = repositorio
                            .ObterDatasDeAulasPorAnoTurmaEDisciplina(p.Id, anoLetivo, turmaCodigo, disciplinaCodigo, disciplina.Regencia ? string.Empty : usuarioRF, usuarioLogado.EhProfessorCj(), usuarioLogado.EhProfessor() || usuarioLogado.EhProfessorCj());

                aulas.ToList().ForEach(aula =>
                {
                    if (!disciplina.Regencia)
                    {
                        aulasRetorno.Add(MapearParaDto(aula, p.Bimestre));
                    }

                    var rfsOrnedadosPorDataCriacaoAula = aulas.OrderBy(a => a.CriadoEm)
                                                         .Select(a => a.ProfessorRf).Distinct();

                    var ultimoRegente = rfsOrnedadosPorDataCriacaoAula.Last();

                    // se regente atual, titular anterior ou professor anterior visualiza a aula
                    if (ultimoRegente.Equals(usuarioRF, StringComparison.InvariantCultureIgnoreCase) ||
                        aula.ProfessorRf.Equals(usuarioRF, StringComparison.InvariantCultureIgnoreCase) ||
                        aula.Turma.EhTurmaInfantil ||
                        usuarioLogado.PerfilAtual != Perfis.PERFIL_PROFESSOR ||
                        usuarioLogado.PerfilAtual != Perfis.PERFIL_CJ ||
                        usuarioLogado.PerfilAtual != Perfis.PERFIL_CJ_INFANTIL
                        )
                    {
                        aulasRetorno.Add(MapearParaDto(aula, p.Bimestre));
                    }
                });
            });

            return(aulasRetorno.OrderBy(a => a.Data));
        }