Esempio n. 1
0
 public bool actualizarCita([FromRoute] int id, FormularioCitaPaciente form)
 {
     return(CitaService.actualizarCita(id, form));
 }
Esempio n. 2
0
 public FormularioCitaPaciente RegistrarCitaPaciente([FromBody] FormularioCitaPaciente entity, [FromQuery] int PacienteId)
 {
     CitaService.RegistrarCitaPaciente(entity, PacienteId);
     Console.WriteLine(StatusCode(Microsoft.AspNetCore.Http.StatusCodes.Status201Created));
     return(entity);
 }
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);
        }
Esempio n. 4
0
 public void procesarHorariosDescartados(Cita cita, FormularioCita fs = null, FormularioCitaPaciente fp = null)
 {
 }
Esempio n. 5
0
        public void RegistrarCitaPaciente(FormularioCitaPaciente entity, int PacienteId)
        {
            var cita           = new Cita();
            var conversor      = new ConversorDeFechaYHora();
            var disponibilidad = new Disponibilidad();
            var correo         = new SendEmail();

            try {
                var tipoAtencion = tipoAtencionRepository.FindByDescription(entity.TipoAtencion);
                var paciente     = PacienteRepository.buscarPorUsuarioId(PacienteId);
                PacienteRepository.ActualizarNumeroPaciente(entity.Celular, paciente);
                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("18: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         = paciente.UsuarioId;
                notificacion.ReceptorId       = 1;
                notificacion.TipoNotificacion = "NUEVACITA";

                notificacionRepository.Save(notificacion);

                var especialista = especialistaRepository.FindById(1);

                //Email Especialista
                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 + " registró una cita para la siguiente fecha: " + horaCitaEmail;
                string subject            = "Nueva Cita";

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

                //Email Paciente
                string emailUserTo2 = cita.Paciente.Usuario.Email;
                string textBody2    = "Acabas de registrar una cita con el especialista " + nombreEspecialista + " para la siguiente fecha: " + horaCitaEmail;
                correo.sendEmailTo(nombrePaciente, emailUserTo2, subject, textBody2);
            }catch (System.Exception) {
                throw;
            }
        }