public Dictionary<string, Dictionary<string, List<string>>> GetAssignmentConfiguration(IOrganizationService service, ITracingService tracingService)
{
QueryExpression configQuery = new QueryExpression("tt_configuration")
{
ColumnSet = new ColumnSet("tt_content"),
Criteria = new FilterExpression
{
Conditions = { new ConditionExpression("tt_name", ConditionOperator.Equal, "Assignments.json") }
}
};
EntityCollection configResults = service.RetrieveMultiple(configQuery);
if (configResults.Entities.Count == 0)
{
tracingService.Trace("Assignments.json configuration not found.");
return null;
}
try
{
string jsonContent = configResults.Entities[0].GetAttributeValue<string>("tt_content");
return JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, List<string>>>>(jsonContent);
}
catch (Exception ex)
{
tracingService.Trace($"Failed to parse configuration JSON: {ex}");
throw new InvalidPluginExecutionException("Configuration parsing failed.", ex);
}
}