/// <sumary> /// Funcion que permite actualizar las tareas en Project Server /// </summary> /// <param gui="String">Identificar Grafico Unico de proyecto de Project Server </param> /// <param fi="Date"> Fecha Inicial de Tarea</param> /// <param ff="Date"> Fecha Final de Tarea</param> /// <param porcent="Int"> Valor numerico de porcentaje de progreso de la tarea</param> private void UddateTask(string gui, string fi, string ff, int porcent) { using (ProjectCont1) { Guid ProjectGuid = new Guid(gui); var projCollection = ProjectCont1.LoadQuery( ProjectCont1.Projects .Where(p => p.Id == ProjectGuid)); ProjectCont1.ExecuteQuery(); if (projCollection != null) { csom.PublishedProject proj2Edit = projCollection.First(); DraftProject draft2Edit = proj2Edit.CheckOut(); ProjectCont1.Load(draft2Edit); ProjectCont1.Load(draft2Edit.Tasks); ProjectCont1.ExecuteQuery(); var tareas = draft2Edit.Tasks; foreach (DraftTask tsk in tareas) { tsk.Start = Convert.ToDateTime(fi); tsk.Finish = Convert.ToDateTime(ff); tsk.PercentComplete = porcent; } draft2Edit.Publish(true); csom.QueueJob qJob = ProjectCont1.Projects.Update(); csom.JobState jobState = ProjectCont1.WaitForQueue(qJob, 200); qJob = ProjectCont1.Projects.Update(); jobState = ProjectCont1.WaitForQueue(qJob, 20); if (jobState == JobState.Success) { coleccion_vacia = false; } } else { coleccion_vacia = true; } } }
/// <summary> /// Get Publish project by name /// </summary> /// <param name="name">the name of the project</param> /// <param name="context">csom context</param> /// <returns></returns> public csom.PublishedProject GetProjectByName(string name, csom.ProjectContext context) { IEnumerable <csom.PublishedProject> projs = context.LoadQuery(context.Projects.Where(p => p.Name == name)); context.ExecuteQuery(); if (!projs.Any()) // no project found { return(null); } return(projs.FirstOrDefault()); }