Dzisiaj postanowiłem zamieścić prosty kawałek kodu, który pobiera użytkowników, którzy w CRM mają przypisaną wskazaną rolę, nazwijmy ją Test. Kawałek kodu metody, która dokonuje takowej eksploracji wygląda następująco:
private systemuser GetSystemUserInRole(string rolename, CrmService serv)
{QueryExpression qe = new QueryExpression();
qe.EntityName = EntityName.systemuser.ToString();
qe.ColumnSet = new AllColumns();LinkEntity le = new LinkEntity();
le.LinkFromEntityName = "systemuser";
le.LinkFromAttributeName = "systemuserid";
le.LinkToEntityName = "systemuserroles";
le.LinkToAttributeName = "systemuserid";ConditionExpression ce = new ConditionExpression();
ce.AttributeName = "name";
ce.Operator = ConditionOperator.Equal;
ce.Values = new object[] { rolename };LinkEntity le2 = new LinkEntity();
le2.LinkFromEntityName = "systemuserroles";
le2.LinkFromAttributeName = "roleid";
le2.LinkToEntityName = EntityName.role.ToString();
le2.LinkToAttributeName = "roleid";le2.LinkCriteria = new FilterExpression();
le2.LinkCriteria.Conditions = new ConditionExpression[] { ce };le.LinkEntities = new LinkEntity[] { le2 };
qe.LinkEntities = new LinkEntity[] { le };
W wyniku pobrania obiektów spełniających kryteria zapytania dostaniemy kolekcję obiektów typu systemuser, z którą wiemy już co zrobić :)