/// <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="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="deliveryHttpClient">An instance of an object that can send request against Kentico Kontent Delivery API</param>
 /// <param name="serializer">Default JSON serializer</param>
 public DeliveryClient(
     IOptions <DeliveryOptions> deliveryOptions,
     IModelProvider modelProvider             = null,
     IRetryPolicyProvider retryPolicyProvider = null,
     ITypeProvider typeProvider             = null,
     IDeliveryHttpClient deliveryHttpClient = null,
     JsonSerializer serializer = null)
 {
     DeliveryOptions     = deliveryOptions;
     ModelProvider       = modelProvider;
     RetryPolicyProvider = retryPolicyProvider;
     TypeProvider        = typeProvider;
     DeliveryHttpClient  = deliveryHttpClient;
     Serializer          = serializer;
 }
 /// <summary>
 /// Creates a <see cref="IDeliveryClient"/> instance manually.
 /// </summary>
 /// <param name="options">A <see cref="DeliveryOptions"/></param>
 /// <param name="modelProvider">A <see cref="IModelProvider"/> instance.</param>
 /// <param name="retryPolicyProvider">A <see cref="IRetryPolicyProvider"/> instance.</param>
 /// <param name="typeProvider">A <see cref="ITypeProvider"/> instance.</param>
 /// <param name="deliveryHttpClient">A <see cref="IDeliveryHttpClient"/> instance.</param>
 /// <param name="jsonSerializer">A <see cref="JsonSerializer"/> instance.</param>
 /// <returns></returns>
 public static IDeliveryClient Create(
     IOptionsMonitor <DeliveryOptions> options,
     IModelProvider modelProvider,
     IRetryPolicyProvider retryPolicyProvider,
     ITypeProvider typeProvider,
     IDeliveryHttpClient deliveryHttpClient,
     JsonSerializer jsonSerializer)
 {
     return(new DeliveryClient(options,
                               modelProvider,
                               retryPolicyProvider,
                               typeProvider,
                               deliveryHttpClient,
                               jsonSerializer));
 }
Exemplo n.º 3
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;
 }
        private static IDeliveryClient MockDeliveryClient(DeliveryOptions deliveryOptions, IDeliveryHttpClient deliveryHttpClient)
        {
            var contentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>();
            var modelProvider          = A.Fake <IModelProvider>();
            var retryPolicy            = A.Fake <IRetryPolicy>();
            var retryPolicyProvider    = A.Fake <IRetryPolicyProvider>();

            A.CallTo(() => retryPolicyProvider.GetRetryPolicy())
            .Returns(retryPolicy);
            A.CallTo(() => retryPolicy.ExecuteAsync(A <Func <Task <HttpResponseMessage> > > ._))
            .ReturnsLazily(c => c.GetArgument <Func <Task <HttpResponseMessage> > >(0)());

            var client = DeliveryClientBuilder
                         .WithOptions(_ => deliveryOptions)
                         .WithDeliveryHttpClient(deliveryHttpClient)
                         .WithContentLinkUrlResolver(contentLinkUrlResolver)
                         .WithModelProvider(modelProvider)
                         .WithRetryPolicyProvider(retryPolicyProvider)
                         .Build();

            return(client);
        }
 IOptionalClientSetup IOptionalClientSetup.WithDeliveryHttpClient(IDeliveryHttpClient deliveryHttpClient)
 => RegisterOrThrow(deliveryHttpClient, nameof(deliveryHttpClient));