14 de diciembre de 2014

Como saber en Project Server si un proyecto está Check-Out

Para saber en Project Server si un determinado proyecto está desprotegido (Check Out) podemos usar la siguiente función:

public bool ProjectIsCheckOut(string projUid)

{

       try

       {

             var guidProject = new Guid(projUid);

             ProjectDataSet dsProject = Project.ReadProject(guidProject, DataStoreEnum.WorkingStore);

             Guid? guidSession = dsProject.Project[0].PROJ_SESSION_UID;

 

             return guidSession.HasValue;

       }

       catch (Exception) {}

 

       return false;

}

En la función usamos la propiedad (Project) la cual deberíamos tener ya inicializada y que representa el servicio “Project.asmx

Puedes usar un inicializador similar al siguiente:

private void InitPs2010Helper(string urlInstPs, ICredentials credentials)

{

    this.Project = new Project();

    this.CustomFields = new CustomFields();

    this.LookupTable = new LookupTable();

    this.QueueSystem = new QueueSystem();

 

    this.Project.Credentials =

        this.CustomFields.Credentials =

        this.LookupTable.Credentials =

        this.QueueSystem.Credentials =

            credentials;

 

    this.Project.Url = string.Format("{0}/_vti_bin/PSI/Project.asmx", urlInstPs);

    this.CustomFields.Url = string.Format("{0}/_vti_bin/PSI/CustomFields.asmx", urlInstPs);

    this.LookupTable.Url = string.Format("{0}/_vti_bin/PSI/LookupTable.asmx", urlInstPs);

    this.QueueSystem.Url = string.Format("{0}/_vti_bin/PSI/QueueSystem.asmx", urlInstPs);

}

No hay comentarios:

Publicar un comentario