public void altaPaciente(Paciente paciente) { if (db.pacientes.Any(o => o.PacienteID==paciente.PacienteID)) { throw new Exception("Paciente existe"); } else { db.pacientes.Add(paciente); db.SaveChanges(); //agrego comunicacion por defecto var eventos = (from e in db.eventos where e is EventoObligatorio select e).ToList(); foreach (var ev in eventos) { // asigno eventos obligatorios con medio mail... EventoPacienteComunicacion epv = new EventoPacienteComunicacion { ComunicacionID = 1, PacienteID = paciente.PacienteID, EventoID = ev.EventoID }; db.eventopacientecomunicacion.Add(epv); db.SaveChanges(); } //db.SaveChanges(); } }
public void suscribirPacienteEvento(long EventoID, string PacienteID, long ComunicacionID) { Evento e = db.eventos.Where(ev => ev.EventoID == EventoID).First(); Paciente p = db.pacientes.Find(PacienteID); Comunicacion c = db.comunicaciones.Find(ComunicacionID); if(e!=null && p!=null && c!=null) { DateTime now = DateTime.Today; DateTime dt= (DateTime)p.FN; int edad = now.Year - dt.Year; if (p.FN > now.AddYears(-edad)) edad--; if (e is EventoObligatorio || (e is EventoOpcional && ((EventoOpcional) e).edades.Contains(edad) && e.sexo == p.sexo)) { EventoPacienteComunicacion epc = new EventoPacienteComunicacion { ComunicacionID = ComunicacionID, EventoID = EventoID, PacienteID = PacienteID }; db.eventopacientecomunicacion.Add(epc); db.SaveChanges(); } else { throw new Exception("DALNotificaciones::suscribirPacienteEvento: No cumple los rangos del evento"); } } else { throw new Exception("SuscribirPacienteEvento, no satisface condiciones"); } }