public EstruturaInstitucionalRetornoEolDTO ObterEstruturaInstuticionalVigentePorDre() { EstruturaInstitucionalRetornoEolDTO resultado = null; var codigosDres = ObterCodigosDres(); string url = $"abrangencia/estrutura-vigente"; if (codigosDres != null && codigosDres.Length > 0) { resultado = new EstruturaInstitucionalRetornoEolDTO(); foreach (var item in codigosDres) { httpClient.DefaultRequestHeaders.Clear(); var resposta = httpClient.GetAsync($"{url}/{item}").Result; if (resposta.IsSuccessStatusCode) { var json = resposta.Content.ReadAsStringAsync().Result; var parcial = JsonConvert.DeserializeObject <EstruturaInstitucionalRetornoEolDTO>(json); if (parcial != null) { resultado.Dres.AddRange(parcial.Dres); } } else { SentrySdk.AddBreadcrumb($"Ocorreu um erro na tentativa de buscar os dados de Estrutura Institucional Vigente por Dre: {item} - HttpCode {resposta.StatusCode} - Body {resposta.Content?.ReadAsStringAsync()?.Result ?? string.Empty}"); } } } return(resultado); }
private async Task SincronizarEstruturaInstitucional(EstruturaInstitucionalRetornoEolDTO estrutura) { var dres = estrutura.Dres.Select(x => new Dre() { Abreviacao = x.Abreviacao, CodigoDre = x.Codigo, Nome = x.Nome }); var ues = estrutura.Dres.SelectMany(x => x.Ues.Select(y => new Ue { CodigoUe = y.Codigo, TipoEscola = y.CodTipoEscola, Nome = y.Nome, Dre = new Dre() { CodigoDre = x.Codigo } })); var turmas = estrutura.Dres.SelectMany(x => x.Ues.SelectMany(y => y.Turmas.Select(z => new Turma { Ano = z.Ano, AnoLetivo = z.AnoLetivo, CodigoTurma = z.Codigo, ModalidadeCodigo = (Modalidade)Convert.ToInt32(z.CodigoModalidade), QuantidadeDuracaoAula = z.DuracaoTurno, Nome = z.NomeTurma, Semestre = z.Semestre, TipoTurno = z.TipoTurno, Ue = new Ue() { CodigoUe = y.Codigo }, EnsinoEspecial = z.EnsinoEspecial, EtapaEJA = z.EtapaEJA, DataInicio = z.DataInicioTurma, SerieEnsino = z.SerieEnsino, DataFim = z.DataFim, Extinta = z.Extinta }))); dres = await repositorioDre.SincronizarAsync(dres); ues = await repositorioUe.SincronizarAsync(ues, dres); await repositorioTurma.SincronizarAsync(turmas, ues); }
private void SincronizarEstruturaInstitucional(EstruturaInstitucionalRetornoEolDTO estrutura) { IEnumerable <Dre> dres = Enumerable.Empty <Dre>(); IEnumerable <Ue> ues = Enumerable.Empty <Ue>(); IEnumerable <Turma> turmas = Enumerable.Empty <Turma>(); dres = estrutura.Dres.Select(x => new Dre() { Abreviacao = x.Abreviacao, CodigoDre = x.Codigo, Nome = x.Nome }); ues = estrutura.Dres.SelectMany(x => x.Ues.Select(y => new Ue { CodigoUe = y.Codigo, TipoEscola = y.CodTipoEscola, Nome = y.Nome, Dre = new Dre() { CodigoDre = x.Codigo } })); turmas = estrutura.Dres.SelectMany(x => x.Ues.SelectMany(y => y.Turmas.Select(z => new Turma { Ano = z.Ano, AnoLetivo = z.AnoLetivo, CodigoTurma = z.Codigo, ModalidadeCodigo = (Modalidade)Convert.ToInt32(z.CodigoModalidade), QuantidadeDuracaoAula = z.DuracaoTurno, Nome = z.NomeTurma, Semestre = z.Semestre, TipoTurno = z.TipoTurno, Ue = new Ue() { CodigoUe = y.Codigo } }))); dres = repositorioDre.Sincronizar(dres); ues = repositorioUe.Sincronizar(ues, dres); repositorioTurma.Sincronizar(turmas, ues); }