예제 #1
0
        static void setTurnoRepeticiones()
        {
            try
            {
                AgendaService servicio = new AgendaService(new UnitOfWork(new TurnosDB()));
                var           turnos   = servicio.GetTurnos();
                int           ct       = turnos.Count();
                turnos.ToList().ForEach(turno =>
                {
                    turno = servicio.GetTurno(turno.ID);
                    for (int nro = 1; nro < 5; nro++)
                    {
                        var sesiones = turno.Sesions
                                       .Where(s => s.Numero == nro && EstadoSesionCondicion.Ocupado.Contains((EstadoSesion)s.Estado))
                                       .OrderBy(s => s.ID).ToList();
                        int count = sesiones.Count();
                        //(sesiones[0].FechaHora).DayOfWeek
                        //int repe = turno.Turno_Repeticiones.Where(tr => tr.DiaSemana == (int)(sesiones[0].FechaHora).DayOfWeek).Count();
                        if (sesiones.Count() > 0 && turno.Turno_Repeticiones.Where(tr => tr.DiaSemana == (int)(sesiones[0].FechaHora).DayOfWeek).Count() == 0)
                        {
                            var sesion = sesiones[0];
                            Turno_Repeticiones repeticion = new Turno_Repeticiones
                            {
                                ConsultorioID       = sesion.ConsultorioID,
                                DiaSemana           = (int)sesion.FechaHora.DayOfWeek,
                                Frecuencia          = 7,
                                Hora                = sesion.FechaHora,
                                Modulos             = sesiones.Count(),
                                TurnoID             = sesion.TurnoID,
                                Posicion            = nro,
                                FechaModificacion   = sesion.FechaModificacion,
                                UsuarioModificacion = sesion.UsuarioModificacion
                            };
                            turno.Turno_Repeticiones.Add(repeticion);
                        }
                    }

                    servicio.EditTurno(turno);
                });
            }
            catch (Exception ex)
            {
                Console.Write(ex.InnerException);
                Console.ReadKey();
            }
        }