public async Task<ActionResult> ProgramarInspecciones(List<string> programar)
        {
            //FECHA DE MAÑANA
            DateTime uFecha = DateTime.Today.AddDays(1);

            if(db.InsP_GesEx.Count()>0){

                uFecha = db.InsP_GesEx.OrderByDescending(m => m.end).Take(1).ToArray()[0].end;
                uFecha = new FunctionDate().ProxDiaLaborable(uFecha);
            }
            //Cantidad de Inspecciones por Días
            int cantiInsDias = 10;

            List<GestionExpertaProgramar> listaApoyos = await db.GestionExpertaProgramar.Where(m=> programar.Contains(m.linea)).ToListAsync();

            List<string> listaIdsApoyos = await db.InsP_GesEx.Where(m=>m.inspeccionado == false).Select(m => m.idapoyo).ToListAsync();
            List<InsP_GesEx> listaIntro = new List<InsP_GesEx>();

            //Si hay apoyos a inspeccionar
            if(listaApoyos.Count>0)
            {            
                //Recorro las Líneas
                foreach(string e in programar)
                {
                    int apoyoD = 1;
                   foreach(var a in listaApoyos.Where(m => m.linea == e))
                    {
                        if (apoyoD > cantiInsDias)
                        {
                            apoyoD = 1;
                            //Aumento la fecha
                            uFecha = new FunctionDate().ProxDiaLaborable(uFecha);
                        }
                        InsP_GesEx nuevo = new InsP_GesEx();
                        nuevo.idapoyo = a.id;
                        nuevo.start = uFecha;
                        nuevo.end = uFecha;
                        listaIntro.Add(nuevo);
                        apoyoD++;
                    }
                    //Aumento la fecha
                    uFecha = new FunctionDate().ProxDiaLaborable(uFecha);
                }
                
                db.InsP_GesEx.AddRange(listaIntro);
                await db.SaveChangesAsync();            
            }

            return RedirectToAction("Calendario");
        }
        public async Task<ActionResult> ReProgramar() {

            List<CalendarioInsP_GesEx> lista = await db.CalendarioInsP_GesEx.ToListAsync();
            List<InsP_GesEx> listaIntro = db.InsP_GesEx.Where(m => m.inspeccionado == false).ToList();
            List<string> ids = lista.Select(m => m.linea).Distinct().ToList();
            List<InsP_GesEx> listaReIntro = new List<InsP_GesEx>();
            //FECHA DEL PRÓXIMO DÍA LABORABLE
            DateTime uFecha = new FunctionDate().ProxDiaLaborable(DateTime.Now);
            //Cantidad de Inspecciones por Días
            int cantiInsDias = 10;


            if(listaIntro.Count>0)
            {
                //Recorro las Líneas
                foreach (string e in ids)
                {
                    int apoyoD = 1;
                    foreach (var a in lista.Where(m => m.linea == e))
                    {
                        if (apoyoD > cantiInsDias)
                        {
                            apoyoD = 1;
                            //Aumento la fecha
                            uFecha = new FunctionDate().ProxDiaLaborable(uFecha);
                        }
                        InsP_GesEx nuevo = new InsP_GesEx();
                        nuevo.idapoyo = a.id;
                        nuevo.start = uFecha;
                        nuevo.end = uFecha;
                        listaReIntro.Add(nuevo);
                        apoyoD++;
                    }
                    //Aumento la fecha
                    uFecha = new FunctionDate().ProxDiaLaborable(uFecha);
                }


                db.InsP_GesEx.RemoveRange(listaIntro);
                await db.SaveChangesAsync();

                db.InsP_GesEx.AddRange(listaReIntro);
                await db.SaveChangesAsync();
            
            }

            return RedirectToAction("Calendario");
        }