public Turno getSiguienteHorarioDisponible(Turno turno, Profesional profesional)
        {
            GestorTurno gTurnos = new GestorTurno();
            Turno turnoNuevo = null;
            DateTime fecha = turno.Fecha.AddDays(1);
            bool encontrado = false;

            foreach (Matricula matricula in profesional.Matriculas)
            {
                foreach (Horario horario in matricula.Horarios)
                {
                    while (fecha.CompareTo(horario.Desde) > 0 && fecha.CompareTo(horario.Hasta) < 0 && !encontrado)
                    {

                        foreach (HorarioDetalle horarioDet in horario.Detalle)
                        {
                            if (fecha.DayOfWeek.ToString() == horarioDet.Dia.DescIngles)
                            {
                                DateTime hora = horarioDet.HoraDesde;
                                int minutoDiferencia = (int)horarioDet.HoraHasta.Subtract(horarioDet.HoraDesde).TotalMinutes;
                                int cantTurnos = minutoDiferencia / horarioDet.Frecuencia;
                                for (int i = 0; i < cantTurnos; i++)
                                {
                                    turnoNuevo = gTurnos.buscar(horarioDet, fecha, hora);
                                    if (turnoNuevo == null)
                                    {
                                        turnoNuevo = new Turno();
                                        turnoNuevo.Fecha = fecha;
                                        turnoNuevo.Hora = hora;
                                        turnoNuevo.EntidadTurno = turno.EntidadTurno;
                                        turnoNuevo.EstadoTurno = turno.EstadoTurno;
                                        turnoNuevo.HorarioDet = horarioDet;
                                        turnoNuevo.Paciente = turno.Paciente;
                                        turnoNuevo.TipoTurno = turno.TipoTurno;
                                        turnoNuevo.Observacion = turno.Observacion;
                                        gTurnos.guardar(turnoNuevo);
                                        turno.EstadoTurno = gTurnos.getEstadoXCodigo(EstadoTurno.CANCELADO);
                                        gTurnos.guardar(turno);
                                        encontrado = true;
                                    }
                                    if (encontrado) { break; }
                                    hora = hora.AddMinutes(horarioDet.Frecuencia);
                                }
                                if (encontrado) { break; }
                            }
                        }
                        if (encontrado) { break; }
                        fecha = fecha.AddDays(1);
                    }
                    if (encontrado) { break; }
                }
                if (encontrado) { break; }
            }

            return turnoNuevo;
        }