public static bool AsignarTareasAutomaticamente(double cant_horas_solapamiento) { List <SUBPROYECTO> subproyectosOrdenados = ControladorSubproyecto.ObtenerSubproyectosConActividadesActivos(); EliminarDetalleRecursoProyectosActivos(); bool salida = true; foreach (var item in subproyectosOrdenados) { List <Tuple <SUBPROYECTO, int> > estrucuraProyecto = new List <Tuple <SUBPROYECTO, int> >(); List <SUBPROYECTO> listaSubproyectos = ControladorSubproyecto.ObtenerEstructuraSubproyectos(estrucuraProyecto, item, 1).OrderByDescending(x => x.Item2).Select(x => x.Item1).ToList(); listaSubproyectos = listaSubproyectos.OrderByDescending(x => x.horas_estimadas).ToList(); foreach (var sub in listaSubproyectos) { if (!AsignarSubproyecto(sub, cant_horas_solapamiento)) { salida = false; } } } ControladorProyecto.ActualizarHorasProyectosActivos(); return(salida); }
public List <Tuple <SUBPROYECTO, int> > ObtenerEstructuraProyecto(Proyecto proyecto) { List <Tuple <SUBPROYECTO, int> > estrucutaProyecto = new List <Tuple <SUBPROYECTO, int> >(); List <SUBPROYECTO> listaSubproyecto = ObtenerSubproyectosHijos(proyecto); foreach (var subpro in listaSubproyecto) { ControladorSubproyecto.ObtenerEstructuraSubproyectos(estrucutaProyecto, subpro, 1); } return(estrucutaProyecto); }
public static void AsignarProyecto(int id_proyecto) { Proyecto proyecto = ControladorProyecto.ObtenerPorID(id_proyecto); List <SUBPROYECTO> lista = ControladorProyecto.ObtenerSubproyectosHijos(proyecto); EliminarDetalleRecursoProyecto(proyecto); foreach (var item in lista) { List <Tuple <SUBPROYECTO, int> > estrucuraProyecto = new List <Tuple <SUBPROYECTO, int> >(); List <SUBPROYECTO> listaSubproyectos = ControladorSubproyecto.ObtenerEstructuraSubproyectos(estrucuraProyecto, item, 1).OrderByDescending(x => x.Item2).Select(x => x.Item1).ToList(); listaSubproyectos.OrderByDescending(x => x.horas_estimadas).ToList(); foreach (var sub in listaSubproyectos) { AsignarSubproyecto(sub, 0); } } }