/// <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;
                }
            }
        }
Exemplo n.º 2
0
        /// <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());
        }