Ejemplo n.º 1
0
        public void RegistrarCita(FormularioCita entity, int PacienteId)
        {
            var cita           = new Cita();
            var conversor      = new ConversorDeFechaYHora();
            var correo         = new SendEmail();
            var disponibilidad = new Disponibilidad();

            try {
                var tipoAtencion = tipoAtencionRepository.FindByDescription(entity.TipoAtencion);
                var paciente     = PacienteRepository.FindById(PacienteId);
                cita.Fecha = conversor.TransformarAFecha(entity.Fecha);
                cita.HoraInicioAtencion = conversor.TransformarAHora(entity.HoraInicioAtencion, entity.Fecha);
                cita.HoraFinAtencion    = conversor.TransformarAHora(entity.HoraFinAtencion, entity.Fecha);
                cita.Estado             = "En Proceso";
                cita.PacienteId         = paciente.Id;
                cita.Paciente           = paciente;
                cita.TipoAtencionId     = tipoAtencion.Id;
                cita.TipoAtencion       = tipoAtencion;
                Save(cita);

                var horarioDescartado = new HorarioDescartado();
                horarioDescartado.HoraInicio = cita.HoraInicioAtencion;
                horarioDescartado.HoraFin    = cita.HoraFinAtencion;

                disponibilidad = disponibilidadRepository.listarPorFecha(entity.Fecha);

                if (disponibilidad != null)
                {
                    horarioDescartado.DisponibilidadId = disponibilidad.Id;
                    horarioDescartado.Disponibilidad   = disponibilidad;
                }
                else
                {
                    disponibilidad                = new Disponibilidad();
                    disponibilidad.Dia            = cita.Fecha;
                    disponibilidad.HoraInicio     = conversor.TransformarAHora("07:00", entity.Fecha);
                    disponibilidad.HoraFin        = conversor.TransformarAHora("19:00", entity.Fecha);
                    disponibilidad.EspecialistaId = 1;
                    disponibilidad.Especialista   = this.especialistaRepository.FindById(disponibilidad.EspecialistaId);
                    var disInserted = this.disponibilidadRepository.guardarDisponibilidad(disponibilidad);

                    horarioDescartado.DisponibilidadId = disInserted.Id;
                    horarioDescartado.Disponibilidad   = disInserted;
                }

                this.horarioDescartadoRepository.Save(horarioDescartado);

                var notificacion = new Notificacion();
                notificacion.EmisorId         = 1;
                notificacion.ReceptorId       = paciente.UsuarioId;
                notificacion.TipoNotificacion = "NUEVACITA";

                notificacionRepository.Save(notificacion);

                var    especialista       = especialistaRepository.FindById(1);
                string emailUserTo2       = especialista.Usuario.Email;
                string nombreEspecialista = especialista.Usuario.Nombre + " " + especialista.Usuario.Apellido;

                //Email Paciente
                string emailUserTo    = cita.Paciente.Usuario.Email;
                string subject        = "Nueva cita";
                string nombrePaciente = cita.Paciente.Usuario.Nombre + " " + cita.Paciente.Usuario.Apellido;

                string horaCitaEmail = cita.HoraInicioAtencion.ToString();
                //string nombreEspecialistaEmail = disponibilidad.Especialista.Usuario.Nombre + " "+disponibilidad.Especialista.Usuario.Apellido;
                string textBody = "El especialista " + nombreEspecialista + " registró una nueva cita para la siguiente fecha: " + horaCitaEmail;

                correo.sendEmailTo(nombrePaciente, emailUserTo, subject, textBody);
                //var valdicacionCorreo = correo.verificarEMail(emailUserTo);

                //Email Especialista

                string textBody2 = "Acabas de registrar una cita para el paciente: " + nombrePaciente + " para la siguiente fecha: " + horaCitaEmail;
                correo.sendEmailTo(nombreEspecialista, emailUserTo2, subject, textBody2);
            }catch (System.Exception) {
                throw;
            }
        }
Ejemplo n.º 2
0
 public FormularioCita RegistrarCitaEspecialista([FromBody] FormularioCita entity, [FromQuery] int PacienteId)
 {
     CitaService.RegistrarCita(entity, PacienteId);
     return(entity);
 }
Ejemplo n.º 3
0
 public void procesarHorariosDescartados(Cita cita, FormularioCita fs = null, FormularioCitaPaciente fp = null)
 {
 }