示例#1
0
 public HttpHypermediaResolverFactory(
     IHypermediaReader hypermediaReader,
     IParameterSerializer parameterSerializer,
     IProblemStringReader problemReader,
     ILinkHcoCache <HttpLinkHcoCacheEntry> linkHcoCache)
 {
     this.hypermediaReader    = hypermediaReader;
     this.parameterSerializer = parameterSerializer;
     this.problemReader       = problemReader;
     this.linkHcoCache        = linkHcoCache;
 }
 protected HypermediaResolverBase(
     IHypermediaReader hypermediaReader,
     IParameterSerializer parameterSerializer,
     IProblemStringReader problemReader,
     ILinkHcoCache <TLinkHcoCacheEntry> linkHcoCache)
 {
     HypermediaReader    = hypermediaReader;
     ParameterSerializer = parameterSerializer;
     ProblemReader       = problemReader;
     LinkHcoCache        = linkHcoCache;
 }
示例#3
0
        /// <summary>
        /// Create a factory to build an IHypermediaResolver that communicates with the server via HTTP, with the ability to cache the results of HypermediaLinks. The HttpClient used for the network communication is provided as a parameter to the factory method.
        /// </summary>
        /// <param name="builder">The HypermediaResolverBuilder</param>
        /// <param name="linkHcoCache">The cache to store and retrieve results of HypermediaLinks</param>
        /// <returns></returns>
        public static IHttpHypermediaResolverFactory CreatedCachedHttpHypermediaResolverFactory(
            this IHypermediaResolverBuilder builder,
            ILinkHcoCache <HttpLinkHcoCacheEntry> linkHcoCache)
        {
            var dependencies = builder.BuildDependencies();

            return(new HttpHypermediaResolverFactory(
                       dependencies.HypermediaReader,
                       dependencies.ParameterSerializer,
                       dependencies.ProblemReader,
                       linkHcoCache));
        }
示例#4
0
 public HttpHypermediaResolver(
     HttpClient httpClient,
     bool disposeHttpClient,
     IHypermediaReader hypermediaReader,
     IParameterSerializer parameterSerializer,
     IProblemStringReader problemReader,
     ILinkHcoCache <HttpLinkHcoCacheEntry> linkHcoCache)
     : base(hypermediaReader, parameterSerializer, problemReader, linkHcoCache)
 {
     this.httpClient        = httpClient;
     this.disposeHttpClient = disposeHttpClient;
 }
示例#5
0
 public Given_ACacheForADifferentUser()
 {
     this.OtherUserCache = new LinkHcoMemoryUserCache <string, LinkHcoCacheEntry>(
         this.MemoryCache,
         "OtherUser",
         SharedUserIdentifier,
         this.HcoEntryKeyBuilder,
         this.ControlEntryKeyBuilder,
         this.ConfigureEntryExpiration,
         this.ConfigureControlExpiration,
         this.ConfigureRootExpiration,
         RootControlTokenKey);
 }
示例#6
0
        /// <summary>
        /// Create an IHypermediaResolver that communicates with the Server via HTTP using the given HttpClient, and with the ability to cache the results of HypermediaLinks
        /// </summary>
        /// <param name="builder">The HypermediaResolverBuilder</param>
        /// <param name="httpClient">The HttpClient to use for the network communication. Set up headers like Authentication beforehand.</param>
        /// <param name="linkHcoCache">The cache to store and retrieve results of HypermediaLinks.</param>
        /// <param name="disposeHttpClient">If <c>true</c>, disposes the injected HttpClient when the IHypermediaResolver is disposed</param>
        /// <returns></returns>
        public static IHypermediaResolver CreateCachedHttpHypermediaResolver(
            this IHypermediaResolverBuilder builder,
            HttpClient httpClient,
            ILinkHcoCache <HttpLinkHcoCacheEntry> linkHcoCache,
            bool disposeHttpClient = true)
        {
            var dependencies = builder.BuildDependencies();
            var resolver     = new HttpHypermediaResolver(
                httpClient,
                disposeHttpClient,
                dependencies.HypermediaReader,
                dependencies.ParameterSerializer,
                dependencies.ProblemReader,
                linkHcoCache);

            return(resolver);
        }