/// <summary>
        /// Initializes a new instance of the <see cref="ContentItem"/> class with the specified JSON data.
        /// </summary>
        /// <param name="source">The JSON data of the content item to deserialize.</param>
        /// <param name="linkedItemsSource">The JSON data of linked items to deserialize.</param>
        /// <param name="contentLinkResolver">An instance of an object that can resolve links in rich text elements</param>
        /// <param name="modelProvider">An instance of an object that can JSON responses into strongly typed CLR objects</param>
        internal ContentItem(JToken source, JToken linkedItemsSource, IContentLinkResolver contentLinkResolver, IModelProvider modelProvider)
        {
            _source            = source ?? throw new ArgumentNullException(nameof(source));
            _linkedItemsSource = linkedItemsSource ?? throw new ArgumentNullException(nameof(linkedItemsSource));
            _modelProvider     = modelProvider ?? throw new ArgumentNullException(nameof(modelProvider));

            _contentLinkResolver = contentLinkResolver;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DeliveryItemListingResponse"/> class.
 /// </summary>
 /// <param name="response">The response from Kentico Kontent Delivery API that contains a list of content items.</param>
 /// <param name="modelProvider">The provider that can convert JSON responses into instances of .NET types.</param>
 /// <param name="contentLinkResolver">The resolver that can generate URLs for links in rich text elements.</param>
 internal DeliveryItemListingResponse(ApiResponse response, IModelProvider modelProvider, IContentLinkResolver contentLinkResolver) : base(response)
 {
     _modelProvider       = modelProvider;
     _contentLinkResolver = contentLinkResolver;
     _pagination          = new Lazy <Pagination>(() => _response.Content["pagination"].ToObject <Pagination>(), LazyThreadSafetyMode.PublicationOnly);
     _items       = new Lazy <IReadOnlyList <ContentItem> >(() => ((JArray)_response.Content["items"]).Select(source => new ContentItem(source, _response.Content["modular_content"], _contentLinkResolver, _modelProvider)).ToList().AsReadOnly(), LazyThreadSafetyMode.PublicationOnly);
     _linkedItems = new Lazy <JObject>(() => (JObject)_response.Content["modular_content"].DeepClone(), LazyThreadSafetyMode.PublicationOnly);
 }
 /// <summary>
 /// Initializes a new instance of <see cref="ModelProvider"/>.
 /// </summary>
 public ModelProvider(
     IContentLinkResolver contentLinkResolver,
     IInlineContentItemsProcessor inlineContentItemsProcessor,
     ITypeProvider typeProvider,
     IPropertyMapper propertyMapper
     )
 {
     _contentLinkResolver         = contentLinkResolver;
     _inlineContentItemsProcessor = inlineContentItemsProcessor;
     _typeProvider   = typeProvider;
     _propertyMapper = propertyMapper;
 }
Esempio n. 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DeliveryClient"/> class for retrieving content of the specified project.
 /// </summary>
 /// <param name="deliveryOptions">The settings of the Kentico Kontent project.</param>
 /// <param name="contentLinkResolver">An instance of an object that can resolve links in rich text elements</param>
 /// <param name="contentItemsProcessor">An instance of an object that can resolve linked items in rich text elements</param>
 /// <param name="modelProvider">An instance of an object that can JSON responses into strongly typed CLR objects</param>
 /// <param name="retryPolicyProvider">A provider of a retry policy.</param>
 /// <param name="typeProvider">An instance of an object that can map Kentico Kontent content types to CLR types</param>
 /// <param name="propertyMapper">An instance of an object that can map Kentico Kontent content item fields to model properties</param>
 /// <param name="deliveryHttpClient">An instance of an object that can send request againts Kentico Kontent Delivery API</param>
 public DeliveryClient(
     IOptionsMonitor <DeliveryOptions> deliveryOptions,
     IContentLinkResolver contentLinkResolver           = null,
     IInlineContentItemsProcessor contentItemsProcessor = null,
     IModelProvider modelProvider             = null,
     IRetryPolicyProvider retryPolicyProvider = null,
     ITypeProvider typeProvider             = null,
     IPropertyMapper propertyMapper         = null,
     IDeliveryHttpClient deliveryHttpClient = null
     )
 {
     DeliveryOptions             = deliveryOptions;
     ContentLinkResolver         = contentLinkResolver;
     InlineContentItemsProcessor = contentItemsProcessor;
     ModelProvider       = modelProvider;
     RetryPolicyProvider = retryPolicyProvider;
     TypeProvider        = typeProvider;
     PropertyMapper      = propertyMapper;
     DeliveryHttpClient  = deliveryHttpClient;
 }