Пример #1
0
        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 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;
                }
            }
        }