예제 #1
0
        /// <summary>
        /// Apenas para testes
        /// </summary>
        private static void TestarQueries()
        {
            var processosAtualizados = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            using (var contexto = new ProcessoContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(new MyFilteredLoggerProvider());

                var interessados = contexto.Processos
                                   .Where(p => processosAtualizados.Contains(p.Id))
                                   .SelectMany(p => p.Interesses)
                                   .Select(i => i.Interessado)
                                   .Distinct()
                                   .ToList(); //para executar logo a consulta

                foreach (var interessado in interessados)
                {
                    var processos = contexto.Interessados
                                    .Where(i => i.Id == interessado.Id)
                                    .SelectMany(i => i.Interesses)
                                    .Select(ip => ip.Processo)
                                    .Distinct();

                    var corpoMensagem = "Os seguintes processos foram atualizados:";
                    foreach (var p in processos)
                    {
                        corpoMensagem += "\n\r" + p.ToString();
                    }

                    System.Console.WriteLine(corpoMensagem);
                }
            }
        }
예제 #2
0
        /// <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();
            }
        }