0

I have read in the page http://mpxj.sourceforge.net/apidocs/net/sf/mpxj/ProjectFile.html that the method GetTaskById returns the requested task, or null if not found, but i don't know why the activity is not found.

Here my code:

 var actividades=db.Actividades.Where(s=>s.ProyectoId==ProyectoId).Include(s=>s.ActApuCompuesto);

        ProjectFile pfile = new ProjectFile();

        foreach(var item in actividades){
            Task task= pfile.addTask();
            task.setName(item.Nombre);
            task.setDuration(Duration.getInstance(item.Cantidad * item.ActApuCompuesto.DuracionApu(), TimeUnit.DAYS));
            task.setID(new Integer(item.Id));
        }
        //pfile have all activities, I check it.


        foreach (Task task in ToEnumerable(pfile.getAllTasks()))
        {

            int valor=task.getID().intValue();
            var precedencias=db.ActividadRelacionPrecedencias.Where(s => s.Actividad1Id ==valor );
              foreach (var item2 in precedencias)
              {//item2.Actividad2Id not is null
                   Task taskPrec = pfile.getTaskByID(java.lang.Integer.valueOf(item2.Actividad2Id));
               //But taskprec is null
                  task.addPredecessor(taskPrec, relationType(item2.RelacionPrecedenciaId), Duration.getInstance(item2.MasDias, TimeUnit.DAYS));
              }


        }
Esneyder
  • 471
  • 1
  • 5
  • 19
  • While solution is, the other approach is not optimal. In the 'foreach(..in precedencias)...' have: foreach (Task task2 in ToEnumerable(pfile.getAllTasks())){ bool sw = true; if (task2.getUniqueID().intValue()==item2.Actividad2Id && sw) { sw = false; task.addPredecessor(task2,relationType(item2.RelacionPrecedenciaId), Duration.getInstance(item2.MasDias*8, TimeUnit.HOURS)); } } – Esneyder Nov 09 '12 at 14:43
  • I believe that the method have errors... – Esneyder Dec 14 '12 at 22:25

0 Answers0