private void LoadTasksInfo(DraftTaskCollection dtc)
        {
            DGV_Tasks.InvokeIfRequired(dg =>
            {
                dg.Columns.Clear();
                dg.DataSource         = null;
                dg.AllowUserToAddRows = false;
            });
            List <PropertyInfo> retrievedFields = DisplayFields(dtc.FirstOrDefault());
            DataTable           dt = CreateDataTableForDisplay(retrievedFields);

            foreach (DraftTask draftTask in dtc)
            {
                dt.ExtendedProperties.Add(dt.Rows.Count, draftTask);
                DataRow dr = dt.NewRow();
                retrievedFields.ForEach(prop => SetPropertyValueInDataColumn(dr, prop, draftTask));
                dt.Rows.Add(dr);
            }
            DGV_Tasks.InvokeIfRequired(dg =>
            {
                dg.DataSource = dt;
                dg.Refresh();
            });
        }
Esempio n. 2
0
 private int UpdateTasksInProject(IGrouping <Guid, ProjectServer_UpdateTasks> data)
 {
     try
     {
         using (ProjectContext projectCont1 = new ProjectContext(PwaPath))
         {
             string nameProject    = _db.PWA_EmpProject.First(d => d.ProjectUID == data.Key).ProjectName;
             var    projCollection = projectCont1.LoadQuery(projectCont1.Projects.Where(p => p.Name == nameProject));
             projectCont1.ExecuteQuery();
             PublishedProject proj2Edit      = projCollection.First();
             DraftProject     projCheckedOut = proj2Edit.CheckOut();
             projectCont1.Load(projCheckedOut.Tasks);
             projectCont1.ExecuteQuery();
             DraftTaskCollection catskill = projCheckedOut.Tasks;
             foreach (DraftTask task in catskill)
             {
                 try
                 {
                     if (task.Name != null && task.Id == _db.ProjectServer_UpdateTasks.First(d => d.taskUID == task.Id).taskUID)
                     {
                         ProjectServer_UpdateTasks projectServer_UpdateTasks = _db.ProjectServer_UpdateTasks.First(d => d.taskUID == task.Id);
                         var nk = projectServer_UpdateTasks.nk;
                         if (nk != null)
                         {
                             int time = (int)nk;
                             projectCont1.Load(task.CustomFields);
                             projectCont1.ExecuteQuery();
                             foreach (CustomField cus in task.CustomFields)
                             {
                                 if (cus.Name == "НК")
                                 {
                                     string intname = cus.InternalName;
                                     task[intname] = time;
                                 }
                             }
                             if (task.PercentComplete == 0)
                             {
                                 task.Work = time + "ч";
                             }
                             else
                             {
                                 int factWork = Convert.ToInt32(task.Work.Substring(0, task.Work.Length - 1)) - Convert.ToInt32(task.RemainingWork.Substring(0, task.RemainingWork.Length - 1));
                                 if (factWork < time)
                                 {
                                     task.Work = time - factWork + "ч";
                                 }
                             }
                             QueueJob qJob1     = projCheckedOut.Update();
                             JobState jobState1 = projectCont1.WaitForQueue(qJob1, 10);
                         }
                         else
                         {
                             ProjectServer_UpdateTasks pTask = _db.ProjectServer_UpdateTasks.First(d => d.taskUID == task.Id);
                             if (pTask.percentComplited != null)
                             {
                                 task.PercentComplete = (int)pTask.percentComplited;
                             }
                             if (pTask.finishDate != null)
                             {
                                 task.Finish = (DateTime)pTask.finishDate;
                             }
                             if (task.IsMilestone == true)
                             {
                                 task.Start = (DateTime)pTask.finishDate;
                             }
                             QueueJob qJob1     = projCheckedOut.Update();
                             JobState jobState1 = projectCont1.WaitForQueue(qJob1, 10);
                         }
                     }
                 }
                 catch
                 {
                 }
             }
             projCheckedOut.Publish(true);
             QueueJob qJob     = projectCont1.Projects.Update();
             JobState jobState = projectCont1.WaitForQueue(qJob, 20);
         }
         return(1);
     }
     catch
     {
         return(0);
     }
 }