public Guid GetResourceUidFromNtAccount(String ntAccount) { //ntAccount = "i:0#.w|" + ntAccount; //this is an inconsequential change ntAccount = ntAccount.Trim('\"'); string ntAccountCopy = ntAccount; SvcResource.ResourceDataSet rds = new SvcResource.ResourceDataSet(); Microsoft.Office.Project.Server.Library.Filter filter = new Microsoft.Office.Project.Server.Library.Filter(); filter.FilterTableName = rds.Resources.TableName; Microsoft.Office.Project.Server.Library.Filter.Field ntAccountField1 = new Microsoft.Office.Project.Server.Library.Filter.Field(rds.Resources.TableName, rds.Resources.WRES_ACCOUNTColumn.ColumnName); filter.Fields.Add(ntAccountField1); Microsoft.Office.Project.Server.Library.Filter.Field ntAccountField2 = new Microsoft.Office.Project.Server.Library.Filter.Field(rds.Resources.TableName, rds.Resources.RES_IS_WINDOWS_USERColumn.ColumnName); filter.Fields.Add(ntAccountField2); Microsoft.Office.Project.Server.Library.Filter.FieldOperator op = new Microsoft.Office.Project.Server.Library.Filter.FieldOperator(Microsoft.Office.Project.Server.Library.Filter.FieldOperationType.Equal, rds.Resources.WRES_ACCOUNTColumn.ColumnName, ntAccountCopy); filter.Criteria = op; rds = resourceClient.ReadResources(filter.GetXml(), false); var obj = (Guid)rds.Resources.Rows[0]["RES_UID"]; return obj; }
public static Guid GetResourceUidFromNtAccount(String ntAccount, out bool isWindowsUser) { SvcResource.ResourceDataSet rds = new SvcResource.ResourceDataSet(); Microsoft.Office.Project.Server.Library.Filter filter = new Microsoft.Office.Project.Server.Library.Filter(); filter.FilterTableName = rds.Resources.TableName; Microsoft.Office.Project.Server.Library.Filter.Field ntAccountField1 = new Microsoft.Office.Project.Server.Library.Filter.Field(rds.Resources.TableName, rds.Resources.WRES_ACCOUNTColumn.ColumnName); filter.Fields.Add(ntAccountField1); Microsoft.Office.Project.Server.Library.Filter.Field ntAccountField2 = new Microsoft.Office.Project.Server.Library.Filter.Field(rds.Resources.TableName, rds.Resources.RES_IS_WINDOWS_USERColumn.ColumnName); filter.Fields.Add(ntAccountField2); Microsoft.Office.Project.Server.Library.Filter.FieldOperator op = new Microsoft.Office.Project.Server.Library.Filter.FieldOperator(Microsoft.Office.Project.Server.Library.Filter.FieldOperationType.Equal, rds.Resources.WRES_ACCOUNTColumn.ColumnName, ntAccount); filter.Criteria = op; rds = resourceClient.ReadResources(filter.GetXml(), false); isWindowsUser = rds.Resources[0].RES_IS_WINDOWS_USER; var obj = (Guid)rds.Resources.Rows[0]["RES_UID"]; return obj; }
// Get the GUID for a Project Server account name. public static Guid GetResourceUid(String accountName) { Guid resourceUid = Guid.Empty; ResourceDataSet resourceDs = new ResourceDataSet(); // Filter for the account name, which can be a // Windows account or Project Server account. PSLib.Filter filter = new PSLib.Filter(); filter.FilterTableName = resourceDs.Resources.TableName; PSLib.Filter.Field accountField = new PSLib.Filter.Field( resourceDs.Resources.TableName, resourceDs.Resources.WRES_ACCOUNTColumn.ColumnName); filter.Fields.Add(accountField); PSLib.Filter.FieldOperator op = new PSLib.Filter.FieldOperator( PSLib.Filter.FieldOperationType.Equal, resourceDs.Resources.WRES_ACCOUNTColumn.ColumnName, accountName); filter.Criteria = op; string filterXml = filter.GetXml(); resourceDs = resourceClient.ReadResources(filterXml, false); // Return the account GUID. if (resourceDs.Resources.Rows.Count > 0) resourceUid = (Guid)resourceDs.Resources.Rows[0]["RES_UID"]; return resourceUid; }