static void Main(string[] args) { CitaDAO dao = new CitaDAO(); string rutaCola = @".\private$\CitaRecibida"; if (MessageQueue.Exists(rutaCola) == true) { MessageQueue cola = new MessageQueue(rutaCola); Message[] msgs = cola.GetAllMessages(); Cita _cita = new Cita(); if (cola.GetAllMessages().Count() > 0) { foreach (Message msg in cola.GetAllMessages()) { msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(Cita) }); _cita = (Cita)msg.Body; if (dao.Obtener(_cita.IdCita) == null) { dao.Crear(_cita); } else { dao.Modificar(_cita); } cola.Receive(); } } } }
public Cita CrearCita(Cita citaACrear) { Observacion obs = null; try { ICollection<Cita> _listaMedCita = dao.BuscarMedicosConCitas(citaACrear).ToList(); if (_listaMedCita.Count() == 0) { ICollection<Cita> _listaPacCita = dao.BuscarPacienteConCita(citaACrear).ToList(); if (_listaPacCita.Count() == 0) { Cita beansalida=null; try { beansalida=dao.Crear(citaACrear); PacienteService.PacientesServiceClient clientPaciente=new PacienteService.PacientesServiceClient(); Paciente beanPac=clientPaciente.consultarPaciente(citaACrear.IdPaciente); NotificacionService.EmailNotificationProxyPortTypeClient e = new NotificacionService.EmailNotificationProxyPortTypeClient(); e.notifyViaEmailReserva("Reserva", beanPac.Nombres, beanPac.Correo, citaACrear.IdCita.ToString(), citaACrear.FecReserva, citaACrear.IdEspecialidad.ToString()); } catch (Exception) { } return beansalida; } else { obs=new Observacion(); obs.CodigoError=1; obs.MensajeError = "Ya se cuenta con una reserva de cita en el horario seleccionado"; throw new Exception(); } } else { obs=new Observacion(); obs.CodigoError = 2; obs.MensajeError = "El doctor no cuenta con este horario disponible"; throw new Exception(); } } catch (Exception e) { if (obs != null) { throw new WebFaultException<Observacion>(obs, HttpStatusCode.InternalServerError); } else { string rutacola = @".\private$\CitaRecibida"; if (!MessageQueue.Exists(rutacola)) MessageQueue.Create(rutacola); MessageQueue cola = new MessageQueue(rutacola); Message mensaje = new Message(); mensaje.Label = "Nueva Cita"; mensaje.Body = citaACrear; cola.Send(mensaje); citaACrear.IdCita = -1; return citaACrear; } } }
public Cita ModificarCita(Cita citaAModificar) { ICollection<Cita> _listaMedCita = dao.BuscarMedicosConCitas(citaAModificar).ToList(); if (_listaMedCita.Count() == 0) { ICollection<Cita> _listaPacCita = dao.BuscarPacienteConCita(citaAModificar).ToList(); if (_listaPacCita.Count() == 0) { return dao.Crear(citaAModificar); } else { throw new WebFaultException<Observacion>( new Observacion() { CodigoError = 1, MensajeError = "Ya se cuenta con una reserva de cita en el horario seleccionado" }, HttpStatusCode.InternalServerError); } } else { throw new WebFaultException<Observacion>( new Observacion() { CodigoError = 2, MensajeError = "El doctor no cuenta con este horario disponible" }, HttpStatusCode.InternalServerError); } }