public bool registrarDisponibilidad(FormularioDisponibilidad entity, int especialistaId)
        {
            var conversor              = new ConversorDeFechaYHora();
            var disponibilidad         = new Disponibilidad();
            var horariosDescartados    = new List <HorarioDescartado>();
            var disponibilidadGuardada = new Disponibilidad();
            var registrado             = false;

            try{
                disponibilidadGuardada = listarPorFecha(entity.dia);
                if (disponibilidadGuardada == null)
                {
                    disponibilidad.Dia            = conversor.TransformarAFecha(entity.dia);
                    disponibilidad.HoraInicio     = conversor.TransformarAHora(entity.horaInicio, entity.dia);
                    disponibilidad.HoraFin        = conversor.TransformarAHora(entity.horaFin, entity.dia);
                    disponibilidad.EspecialistaId = especialistaId;
                    disponibilidad.Especialista   = this.EspecialistaRepository.FindById(especialistaId);
                    var disInserted = this.DisponibilidadRepository.guardarDisponibilidad(disponibilidad);

                    foreach (var horario in entity.horariosDescartados)
                    {
                        var horarioDescartado = new HorarioDescartado();
                        horarioDescartado.HoraInicio = conversor.TransformarAHora(
                            horario.horaInicio, entity.dia
                            );
                        horarioDescartado.HoraFin = conversor.TransformarAHora(
                            horario.horaFin, entity.dia
                            );
                        horarioDescartado.DisponibilidadId = disInserted.Id;
                        horarioDescartado.Disponibilidad   = disInserted;
                        this.HorarioDescartadoRepository.Save(horarioDescartado);
                        registrado = true;
                    }
                }
                else
                {
                    registrado = false;
                }
            } catch (System.Exception) {
                throw;
            }

            return(registrado);
        }
Esempio n. 2
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;
            }
        }
Esempio n. 3
0
        public bool actualizarCita(int id, FormularioCitaPaciente form)
        {
            var cita      = new Cita();
            var conversor = new ConversorDeFechaYHora();
            var disponibilidadAnterior = new Disponibilidad();
            var disponibilidadActual   = new Disponibilidad();
            var citaActualizada        = false;
            var horaInicioAnterior     = new DateTime();
            var horaFinAnterior        = new DateTime();
            var horaInicioActual       = new DateTime();
            var horaFinActual          = new DateTime();
            var correo = new SendEmail();

            try{
                cita = this.CitaRepository.FindById(id);
                horaInicioAnterior = cita.HoraInicioAtencion;
                horaFinAnterior    = cita.HoraFinAtencion;
                horaInicioActual   = conversor.TransformarAHora(form.HoraInicioAtencion, form.Fecha);
                horaFinActual      = conversor.TransformarAHora(form.HoraFinAtencion, form.Fecha);

                disponibilidadAnterior = disponibilidadRepository.listarPorFecha(cita.Fecha.ToString("yyyy-MM-dd"));

                disponibilidadActual = disponibilidadRepository.listarPorFecha(form.Fecha);

                var horarioDescartado = new HorarioDescartado();
                horarioDescartado.HoraInicio = horaInicioActual;
                horarioDescartado.HoraFin    = horaFinActual;


                if (disponibilidadAnterior != null)
                {
                    if (disponibilidadActual == null)
                    {
                        disponibilidadActual                = new Disponibilidad();
                        disponibilidadActual.Dia            = conversor.TransformarAFecha(form.Fecha);
                        disponibilidadActual.HoraInicio     = conversor.TransformarAHora("07:00", form.Fecha);
                        disponibilidadActual.HoraFin        = conversor.TransformarAHora("18:00", form.Fecha);
                        disponibilidadActual.EspecialistaId = 1;
                        disponibilidadActual.Especialista   = this.especialistaRepository.FindById(disponibilidadActual.EspecialistaId);
                        var disInserted = this.disponibilidadRepository.guardarDisponibilidad(disponibilidadActual);

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

                        this.horarioDescartadoRepository.Save(horarioDescartado);
                    }


                    this.horarioDescartadoRepository.actualizarHorarioDescartado(horaInicioAnterior, horaFinAnterior,
                                                                                 horaInicioActual, horaFinActual, disponibilidadAnterior, disponibilidadActual);
                    var tipoAtencion = tipoAtencionRepository.FindByDescription(form.TipoAtencion);
                    PacienteRepository.ActualizarNumeroPaciente(form.Celular, cita.Paciente);
                    cita.Fecha = conversor.TransformarAFecha(form.Fecha);
                    cita.HoraInicioAtencion = conversor.TransformarAHora(form.HoraInicioAtencion, form.Fecha);
                    cita.HoraFinAtencion    = conversor.TransformarAHora(form.HoraFinAtencion, form.Fecha);
                    cita.TipoAtencionId     = tipoAtencion.Id;
                    cita.TipoAtencion       = tipoAtencion;


                    citaActualizada = this.CitaRepository.actualizarCita(cita, id);
                }

                var notificacion = new Notificacion();
                notificacion.EmisorId         = cita.Paciente.UsuarioId;
                notificacion.ReceptorId       = 1;
                notificacion.TipoNotificacion = "MODIFICARCITA";

                notificacionRepository.Save(notificacion);

                //Email especialista
                var    especialista       = especialistaRepository.FindById(1);
                string emailUserTo        = especialista.Usuario.Email;
                string nombreEspecialista = especialista.Usuario.Nombre + " " + especialista.Usuario.Apellido;
                string nombrePaciente     = cita.Paciente.Usuario.Nombre + " " + cita.Paciente.Usuario.Apellido;
                string horaCitaEmail      = cita.HoraInicioAtencion.ToString();
                string textBody           = "El paciente " + nombrePaciente + " modificó la cita para la siguiente fecha: " + horaCitaEmail;
                string subject            = "Cita Modificada";

                correo.sendEmailTo(nombreEspecialista, emailUserTo, subject, textBody);

                //Email Paciente
                string emailUserTo2 = cita.Paciente.Usuario.Email;
                string textBody2    = "Acabas de modificar la cita para la siguiente fecha: " + horaCitaEmail;

                correo.sendEmailTo(nombrePaciente, emailUserTo2, subject, textBody2);
            } catch (System.Exception) {
                throw;
            }
            return(citaActualizada);
        }