예제 #1
0
        public static void InitializeClass(TestContext tc)
        {
            try
            {
                var context = new SAREMAdminContext();
                context.dropSchema(tenant);
                SARMContext.createTenant(tenant);
            }
            catch (Exception E)
            {
                Debug.WriteLine(E.Message);
            }

            db = SARMContext.getTenant(tenant);

            comunicaciones.ForEach(c => db.comunicaciones.Add(c));
            db.SaveChanges();
            Debug.WriteLine("Comunicaciones agregados...");

            eventos.ForEach(e => db.eventos.Add(e));
            eventosop.ForEach(e => db.eventos.Add(e));
            db.SaveChanges();
            Debug.WriteLine("Eventos agregados...");

            List<Pais> naciones = new List<Pais>
            {
                new Pais { PaisID = "UY", nombre = "Uruguay" },
                new Pais { PaisID = "BR", nombre = "Brasil" }
            };
            naciones.ForEach(n => db.paises.Add(n));
            db.SaveChanges();
            Debug.WriteLine("Paises agregados...");

            List<Paciente> pacientes = new List<Paciente>
            {   /*
                new Paciente{ PacienteID="50548305",
                    FN=new DateTime(1991,6,22),
                    sexo=Sexo.MASCULINO.ToString(),
                    nombre="Leonardo Clavijo",
                    PaisID = naciones.First().PaisID
                },*/
                new Paciente{ PacienteID="50548306",
                    FN=new DateTime(1991,6,22),
                    sexo=Sexo.FEMENINO.ToString(),
                    nombre="Kali la diosa",
                    PaisID = naciones.First().PaisID
                },
                  new Paciente{ PacienteID="50548307",
                    FN=new DateTime(1990,10,11),
                    sexo=Sexo.FEMENINO.ToString(),
                    nombre="Valentina Da Silva",
                    PaisID = naciones.First().PaisID
                },
                new Paciente{ PacienteID="50548308",
                    FN=new DateTime(1990,11,11),
                    sexo=Sexo.MASCULINO.ToString(),
                    nombre="Jorge Perez",
                    PaisID = naciones.First().PaisID
                },
                new Paciente{ PacienteID="51130115",
                    FN=new DateTime(1990,11,11),
                    sexo=Sexo.FEMENINO.ToString(),
                    nombre="Juana Alvarez",
                    PaisID = naciones.First().PaisID
                }
            };
            //lista
            pacientes.ForEach(p => fabrica.ipacientes.altaPaciente(p));
            db.SaveChanges();
            Debug.WriteLine("Pacientes agregados...");

            //custom agrego 20 pacientes
            List<Paciente> customs = new List<Paciente>();
            for (int i = 0; i < 20; i++)
            {
                Paciente template = new Paciente
                {
                    PacienteID = i.ToString(),
                    FN = new DateTime(1991, 6, 22),
                    sexo = Sexo.MASCULINO.ToString(),
                    nombre = "Leonardo Clavijo" + i.ToString(),
                    PaisID = naciones.First().PaisID
                };
                customs.Add(template);
            }
            customs.ForEach(x =>db.pacientes.Add(x));

            Debug.WriteLine("Pacientes agregados...");

            //especialidades
            List<Especialidad> especialidades = new List<Especialidad>
            {
                new Especialidad{ tipo="Esp1", descripcion="especialidad 1"},
                new Especialidad{ tipo="Esp2", descripcion="especialidad 2"},
                new Especialidad{ tipo="Esp3", descripcion="especialidad 3"},
                new Especialidad{ tipo="Esp4", descripcion="especialidad 4"}
            };
            especialidades.ForEach(e => db.especialidades.Add(e));
            db.SaveChanges();
            Debug.WriteLine("Especialidades agregados...");

            //funcionarios
            List<Medico> funcionarios = new List<Medico>
            {
                new Medico {FuncionarioID="17299999", nombre="Medico1", especialidades=especialidades},
                new Medico {FuncionarioID="17299998", nombre="Medico2", especialidades=especialidades},
                new Medico {FuncionarioID="17299997", nombre="Medico3", especialidades=especialidades},
                new Medico {FuncionarioID="17299996", nombre="Medico4", especialidades=especialidades},
                new Medico {FuncionarioID="17299995", nombre="Medico5", especialidades=especialidades}
            };
            funcionarios.ForEach(f => db.funcionarios.Add(f));
            db.SaveChanges();
            Debug.WriteLine("Funcionarios agregados...");

            List<Local> locales = new List<Local>
            {
                new Local {LocalID=1, nombre = "local1", calle="calle1", numero="SN", especialidades=especialidades, medicos=funcionarios},
                new Local {LocalID=2, nombre = "local2", calle="calle2", numero="SN2"},
                new Local {LocalID=3, nombre = "local3", calle="calle3", numero="SN3"}
            };
            locales.ForEach(l => db.locales.Add(l));
            db.SaveChanges();
            //Creo consultas para asignar

            List<Consulta> consultas = new List<Consulta>
            {
                new Consulta {
                    EspecialidadID = especialidades[0].EspecialidadID,
                    fecha_inicio=DateTime.UtcNow,
                    fecha_fin= DateTime.UtcNow.AddMinutes(20),
                    FuncionarioID=funcionarios[0].FuncionarioID,
                    LocalID=1,
                    numpacientes=10,
                    maxpacientesespera=10
                },
                new Consulta {
                    EspecialidadID = especialidades[1].EspecialidadID,
                    fecha_inicio=DateTime.UtcNow,
                    fecha_fin= DateTime.UtcNow.AddMinutes(300),
                    FuncionarioID=funcionarios[0].FuncionarioID,
                    LocalID=2,
                    numpacientes=10,
                    maxpacientesespera=10
                },
                new Consulta {
                    EspecialidadID = especialidades[2].EspecialidadID,
                    fecha_inicio=DateTime.UtcNow,
                    fecha_fin= DateTime.UtcNow.AddMinutes(300),
                    FuncionarioID=funcionarios[0].FuncionarioID,
                    LocalID=1,
                    numpacientes=10,
                    maxpacientesespera=10
                }
            };
            FabricaSAREM fab = new FabricaSAREM(tenant);
            consultas.ForEach(c => fab.iagenda.agregarConsulta(c));
            db.SaveChanges();
            Debug.WriteLine("Consultas agregados...");

            //al paciente 13 le asigno un medico de referencia.
            var pac = db.pacientes.Find("13");
            pac.FuncionarioID = funcionarios[0].FuncionarioID;
            pac = db.pacientes.Find("10");
            pac.FuncionarioID = funcionarios[0].FuncionarioID;
            pac = db.pacientes.Find("1");
            pac.FuncionarioID = funcionarios[0].FuncionarioID;

            pac = db.pacientes.Find("2");
            pac.FuncionarioID = funcionarios[1].FuncionarioID;
            pac = db.pacientes.Find("3");
            pac.FuncionarioID = funcionarios[1].FuncionarioID;
            pac = db.pacientes.Find("4");
            pac.FuncionarioID = funcionarios[1].FuncionarioID;
            db.SaveChanges();
        }
예제 #2
0
 public DALNotificaciones(string tenant)
 {
     this.tenant = tenant;
     db = SARMContext.getTenant(tenant);
 }
예제 #3
0
        public static SARMContext getTenant(string schemaName)
        {
            var builder = new DbModelBuilder();
            builder.Entity<AgendaEvento>().ToTable("NotificacionesConsultas", schemaName)
                .HasKey(k => k.ID);
            builder.Entity<Comunicacion>().ToTable("Comunicaciones", schemaName);

            builder.Entity<Consulta>()
                .ToTable("Consultas", schemaName);

            builder.Entity<Pais>().ToTable("Paises", schemaName);
            builder.Entity<Especialidad>().ToTable("Especialidades", schemaName);

            builder.Entity<Evento>()
                .Map<EventoObligatorio>(ee => ee.Requires("TipoEvento").HasValue(0))
                .Map<EventoOpcional>(ee => ee.Requires("TipoEvento").HasValue(1))
                .ToTable("Eventos", schemaName);

            //medicos, etc
            builder.Entity<Funcionario>().ToTable("Funcionarios", schemaName);
            builder.Entity<Paciente>().ToTable("Pacientes", schemaName);

            builder.Entity<EventoPacienteComunicacion>().ToTable("EventoPacienteComunicacion", schemaName);

            //builder.Entity<MedicoLocal>().ToTable("MedicoLocal", schemaName).;

            builder.Entity<PacienteConsultaCancelar>().ToTable("ConsultasCanceladas", schemaName);
            builder.Entity<Paciente>()
                .HasMany<PacienteConsultaCancelar>(p => p.canceladas)
                .WithRequired(pc => pc.paciente);

            //builder.Entity<Parte>().ToTable("Partes", schemaName);
            builder.Entity<Referencia>().ToTable("Referencias", schemaName)
                .HasKey(k => new { k.PacienteID, k.FuncionarioID});

            builder.Entity<PacienteConsultaAgenda>().ToTable("PacienteConsulta", schemaName)
                .HasRequired(x => x.consulta).WithMany(x => x.pacientes);

            builder.Entity<Medico>()
                .HasMany<Especialidad>(m => m.especialidades)
                .WithMany(e => e.medicos)
                .Map(me => {
                    me.MapLeftKey("MedicoID");
                    me.MapRightKey("EspecialidadID");
                    me.ToTable("MedicosEspecialidades", schemaName);
                });

            builder.Entity<Local>().ToTable("Locales", schemaName);

            builder.Entity<Local>()
                .HasMany<Especialidad>(l => l.especialidades)
                .WithMany(e => e.locales)
                .Map(me =>{
                    me.MapLeftKey("LocalID");
                    me.MapRightKey("EspecialidadID");
                    me.ToTable("LocalesEspecialidades", schemaName);
                });

            builder.Entity<Medico>()
                .HasMany<Local>(e => e.locales)
                .WithMany(r => r.medicos)
                .Map(me =>
                {
                    me.MapLeftKey("MedicoID");
                    me.MapRightKey("LocalID");
                    me.ToTable("MedicoLocal", schemaName);
                });

            builder.Entity<Evento>()
                .HasMany<EventoPacienteComunicacion>(e=> e.pacientes);
            builder.Entity<Paciente>()
                .HasMany<EventoPacienteComunicacion>(e => e.eventos);
            builder.Entity<Comunicacion>()
                .HasMany<EventoPacienteComunicacion>(e => e.eventos);

            builder.Entity<PacienteConsultaEspera>().ToTable("PacientesEspera", schemaName);

            builder.Entity<Mensaje>().ToTable("Mensajes", schemaName);

            var model = builder.Build(new SqlConnection(con));
            DbCompiledModel compModel = model.Compile();
            var compiledModel = modelCache.GetOrAdd(schemaName, compModel);
            SARMContext ret = new SARMContext(compiledModel, schemaName);
            return ret;
        }
예제 #4
0
 public DALPacientes(string tenant)
 {
     db = SARMContext.getTenant(tenant);
 }