public ActionResult AcompanharProcesso(int processoId, string nome, string email) { using (var contexto = new ProcessoContext()) { //verificar se o interesse já foi registrado var processo = contexto.Processos .Where(p => p.Id == processoId) .Include(p => p.Interesses) .ThenInclude(i => i.Interessado) .Single(); if (processo.Interesses.Where(i => i.Interessado.Email == email).Count() > 0) { ViewBag.MensagemDeAcompanhamentoJaRealizado = "Você já está acompanhando esse processo."; var model = new HomeViewModel(processoId); return(View("Index", model)); } var interessado = contexto .Interessados .Where(i => i.Email == email) .FirstOrDefault(); if (interessado == null) { interessado = new Interessado { Nome = nome, Email = email }; } interessado.RegistraInteresse(processo); contexto.SaveChanges(); return(RedirectToAction("Index")); } }
public static void CriarBancoDeDados() { using (var context = new ProcessoContext()) { context.Database.EnsureCreated(); context.SaveChanges(); } }
public static void ArmazenarProcesso(Processo newProcessDB) { using (var context = new ProcessoContext()) { context.Add(newProcessDB); context.SaveChanges(); } }
public ActionResult ExcluirProcesso(int id) { using (var contexto = new ProcessoContext()) { var processo = contexto.Processos.Find(id); contexto.Processos.Remove(processo); contexto.SaveChanges(); return(RedirectToAction("Index")); } }
private async Task VerificaAtualizacoes() { Trace.TraceInformation("Iniciando a verificação de novas tramitações."); EnviarEmailAdministrativo("Iniciando a verificação de novas tramitações."); var processosAtualizados = new List <Processo>(); using (var servico = new MateriasService()) { foreach (var processo in servico.ProcessosMonitorados) { EnviarEmailAdministrativo($"Verificando atualizações para o processo {processo}..."); //consulta o web service para recuperar as tramitações da matéria: var movimentacao = await servico.TramitacoesDaMateria(processo.Codigo); //recupera a data mais recente de tramitação: var dataUltimaTramitacao = movimentacao.Materia.Tramitacoes .OrderByDescending(t => t.Identificacao.Data) .Select(t => t.Identificacao.Data) .First(); if (dataUltimaTramitacao.CompareTo(processo.DataUltimaAtualizacao) > 0) { string mensagem = $"Processo {processo} teve atualizações!"; Trace.TraceInformation(mensagem); EnviarEmailAdministrativo(mensagem); processo.DataUltimaAtualizacao = dataUltimaTramitacao; processosAtualizados.Add(processo); } } } if (processosAtualizados.Count > 0) { using (var contexto = new ProcessoContext()) { try { contexto.Processos.UpdateRange(processosAtualizados); contexto.SaveChanges(); EnviarEmailAtualizacao(processosAtualizados.Select(p => p.Id)); } catch (Exception e) { EnviarEmailAdministrativo($"Ocorreu um erro: {e.Message}\r\nInner Exception: {e.InnerException.Message}\r\n{e.StackTrace}"); } } } else { EnviarEmailAdministrativo("Não houveram novas tramitações para os processos monitorados."); } }
public ActionResult AtualizaDataDoProcesso(int id) { var novaData = new DateTime(2000, 1, 1); Trace.TraceInformation($"Atrasando data do processo {id}..."); using (var ctx = new ProcessoContext()) { var processo = ctx.Processos.Find(id); if (processo != null) { processo.DataUltimaAtualizacao = novaData; ctx.Processos.Update(processo); ctx.SaveChanges(); } } return(RedirectToAction("Index")); }
private async Task VerificaAtualizacoes() { var processosAtualizados = new List <Processo>(); using (var servico = new MateriasService()) { foreach (var processo in servico.ProcessosMonitorados) { //consulta o web service para recuperar as tramitações da matéria: var movimentacao = await servico.TramitacoesDaMateria(processo.Codigo); //recupera a data mais recente de tramitação: var dataUltimaTramitacao = movimentacao.Materia.Tramitacoes .OrderByDescending(t => t.Identificacao.Data) .Select(t => t.Identificacao.Data) .First(); if (dataUltimaTramitacao.CompareTo(processo.DataUltimaAtualizacao) > 0) { Trace.TraceInformation($"Processo {processo} teve atualizações."); processo.DataUltimaAtualizacao = dataUltimaTramitacao; processosAtualizados.Add(processo); } } } if (processosAtualizados.Count > 0) { using (var contexto = new ProcessoContext()) { Trace.TraceInformation("Persistindo processos atualizados."); contexto.Processos.AddRange(processosAtualizados); contexto.SaveChanges(); } EnviarEmailAtualizacao(processosAtualizados.Select(p => p.Id)); } else { EnviarEmailAdministrativo(); } }
/// <summary> /// Apenas para testes /// </summary> private static void CadastrarInteressados() { using (var contexto = new ProcessoContext()) { var serviceProvider = contexto.GetInfrastructure <IServiceProvider>(); var loggerFactory = serviceProvider.GetService <ILoggerFactory>(); loggerFactory.AddProvider(new MyFilteredLoggerProvider()); var processosMonitorados = contexto.Processos; var daniel = new Interessado() { Nome = "Daniel Portugal", Email = "*****@*****.**" }; var marcia = new Interessado() { Nome = "Marcia Garcia", Email = "*****@*****.**" }; daniel.RegistraInteresse(processosMonitorados); marcia.RegistraInteresse(processosMonitorados); contexto.SaveChanges(); } }
public async Task <ActionResult> CadastrarProcesso(Processo processo) { if (ModelState.IsValid) { using (var contexto = new ProcessoContext()) using (var servico = new MateriasService()) { Materia materia = await servico.RecuperarMateriaPeloCodigo(processo); processo.Sigla = processo.Sigla.ToUpper(); processo.Emenda = materia.DadosBasicos.Ementa; processo.Codigo = materia.Identificacao.Codigo; processo.Origem = OrigemProcesso.Senado; processo.DataUltimaAtualizacao = materia.Tramitacoes .OrderByDescending(t => t.Identificacao.Data) .Select(t => t.Identificacao.Data) .First(); contexto.Processos.Add(processo); contexto.SaveChanges(); return(RedirectToAction("Index")); } } return(View("Index", new HomeViewModel())); }