I am using CSOM to traverse through Project Server 2013 resources on a project. I am checking if the resources are generic since I have written code logic based on that. I have a BA and PM generic resources that are part of a project that I added using the Build Team feature in Project Server. These resources show up with the Generic flag checked ON when viewing them in resource center. But programmatically the IsGenericResource
flag is returning False
.
Here is the code snippet (relevant code within **) :
public string ProcessGenericResources(ProjectContext pc, PublishedProject publishedproject)
{
try
{
Boolean bStaffingRequestItemUpdated = false; // this will be set to True whenever a staffing list item is update
string sResourceApproverAttr = ExceptionUtility.ReadKeyFromConfig(sResourceApproverKey);
string sRet = "";
DraftProject project;
if (publishedproject.IsCheckedOut)
project = publishedproject.Draft.IncludeCustomFields;
else
project = publishedproject.CheckOut().IncludeCustomFields;
pc.Load(project, p => p.Name, p => p.Id);
DraftProjectResourceCollection ProjectResources = project.ProjectResources;
pc.Load(ProjectResources, list => list.Include(item => item.Name, item => item.Id, item => item.IsGenericResource));
pc.ExecuteQuery();
// For each generic resource, check if an item is already in the Staffing Request list. If not create one
foreach (DraftProjectResource resource in ProjectResources)
{
List<string> listRMsNotified = new List<string>(); // this is to keep track of RMs already notified
pc.Load(resource);
pc.ExecuteQuery();
**bool bGenericResource = resource.IsGenericResource;
ExceptionUtility.LogMessage("Resource=> Name:" + resource.Name + " ID:" + resource.Id + " Is Generic Resource?: " + bGenericResource);**