/// <summary> /// Initializes a new instance of the <see cref="CategoryAccessProvider"/> class. /// </summary> /// <param name="portalContext">Portal Context</param> /// <param name="contentAccessLevelProvider">Content Access Level Provider</param> /// <param name="productAccessProvider">Product Access Provider</param> public CategoryAccessProvider(IPortalContext portalContext, ContentAccessLevelProvider contentAccessLevelProvider, ProductAccessProvider productAccessProvider) : base(ContentAccessConfiguration.DefaultCategoryConfiguration(), portalContext) { this.ContentAccessLevelProvider = contentAccessLevelProvider; this.ProductAccessProvider = productAccessProvider; }
/// <summary> /// Modify a fetch and add necessary link entity elements and filter conditions to satisfy record level security trimming based on the relationship definitions. /// </summary> /// <param name="serviceContext"><see cref="OrganizationServiceContext"/> to use</param> /// <param name="linkDetails"><see cref="ContentAccessProvider.LinkDetails"/> to use</param> /// <param name="fetch">Fetch to modify</param> /// <param name="link">Link to construct</param> /// <param name="filter">Filter to construct</param> /// <param name="contact">Associated Contact</param> /// <param name="account">Associated Account</param> /// <param name="addCondition">Construct Account/Contact relationship filter</param> /// <param name="linkEntityAliasGenerator">LinkEntityAliasGenerator to track and create Aliases</param> private void BuildLinksAndFilter(OrganizationServiceContext serviceContext, LinkDetails linkDetails, Fetch fetch, Link link, Filter filter, EntityReference contact, EntityReference account, bool addCondition, LinkEntityAliasGenerator linkEntityAliasGenerator) { var relationshipMetadata = this.BuildRelationshipMetadata(serviceContext, linkDetails); ProductAccessProvider.BuildLinksAndFilter(serviceContext, relationshipMetadata, linkDetails, fetch, link, filter, contact, account, addCondition, linkEntityAliasGenerator); }