예제 #1
0
 public static IClientSettingsBuilder OnResponse(this IClientSettingsBuilder builder, Action <IRestClient, IRestResponse> handler)
 {
     return(builder.OnResponse((client, response) => {
         handler(client, response);
         return Task.CompletedTask;
     }));
 }
        public static IClientSettingsBuilder WithConfiguration(this IClientSettingsBuilder builder, IConfigurationSection section)
        {
            RemoveSettingsService(builder);

            builder.Services.AddSingleton <IClientSettingsService>(new ConfigurationSectionSettingsService(section));
            return(builder);
        }
예제 #3
0
 public static IClientSettingsBuilder UseDefaultSerializers(this IClientSettingsBuilder builder)
 {
     return(builder
            .UseJsonSerializer()
            .UseXmlSerializer()
            .UseKeyValueSerializer());
 }
        public static IClientSettingsBuilder WithOptions <TOption>(this IClientSettingsBuilder builder)
        {
            RemoveSettingsService(builder);

            builder.Services.AddSingleton <IClientSettingsService, OptionSettingsService <TOption> >();

            return(builder);
        }
        private static void RemoveSettingsService(IClientSettingsBuilder builder)
        {
            ServiceDescriptor toRemove = builder.Services.FirstOrDefault(p => p.ServiceType == typeof(IClientSettingsService));

            if (toRemove != null)
            {
                builder.Services.Remove(toRemove);
            }
        }
예제 #6
0
        public static IClientSettingsBuilder WithHeaders(this IClientSettingsBuilder builder,
                                                         IEnumerable <KeyValuePair <string, object> > headers)
        {
            foreach (var header in headers)
            {
                builder = builder.WithtHeader(header.Key, header.Value);
            }

            return(builder);
        }
예제 #7
0
        public static IClientSettingsBuilder BaseUri(this IClientSettingsBuilder builder, string baseUri)
        {
            if (String.IsNullOrEmpty(baseUri))
            {
                throw new ArgumentNullException(nameof(baseUri));
            }

            Uri uri;

            if (!Uri.TryCreate(baseUri, UriKind.Absolute, out uri))
            {
                throw new ArgumentException($"The string {baseUri} is not well-formed");
            }

            return(builder.BaseUri(uri));
        }
예제 #8
0
 public static IClientSettingsBuilder UseJsonSerializer(this IClientSettingsBuilder builder)
 {
     return(builder.UseJsonSerializer(new JsonSerializerSettings()));
 }
예제 #9
0
 public static IClientSettingsBuilder UseKeyValueSerializer(this IClientSettingsBuilder builder)
 {
     return(builder.UseSerializer(new KeyValueContentSerializer()));
 }
예제 #10
0
 public static IClientSettingsBuilder UseBasicAuthentication(this IClientSettingsBuilder builder, string userName, string password)
 {
     return(builder.UseAuthenticator(new BasicRequestAuthenticator(userName, password)));
 }
예제 #11
0
 public static IClientSettingsBuilder UseJsonSerializer(this IClientSettingsBuilder builder,
                                                        JsonSerializerSettings settings)
 {
     return(builder.UseSerializer(new JsonContentSerializer(settings)));
 }
예제 #12
0
 public static IClientSettingsBuilder OnRequest(this IClientSettingsBuilder builder, Func <IRestClient, IRestRequest, Task> handler)
 {
     return(builder.OnRequest(new DelegatedRequestHandler(handler)));
 }
예제 #13
0
 public static IClientSettingsBuilder OnResponse <T>(this IClientSettingsBuilder builder)
     where T : class, IRestResponseHandler
 {
     return(builder.OnResponse(typeof(T)));
 }
예제 #14
0
 public static IClientSettingsBuilder UseCurrentCulture(this IClientSettingsBuilder builder)
 {
     return(builder.UseCulture(CultureInfo.CurrentCulture));
 }
예제 #15
0
 public static IClientSettingsBuilder OnResponse(this IClientSettingsBuilder builder, Action <IRestResponse> handler)
 {
     return(builder.OnResponse((client, response) => handler(response)));
 }
예제 #16
0
 public static IClientSettingsBuilder UseASCII(this IClientSettingsBuilder builder)
 {
     return(builder.UseEncoding(Encoding.ASCII));
 }
예제 #17
0
 public static IClientSettingsBuilder UseDefaultCulture(this IClientSettingsBuilder builder)
 {
     return(builder.UseInvariantCulture());
 }
예제 #18
0
 public static IClientSettingsBuilder UseUTF8(this IClientSettingsBuilder builder)
 {
     return(builder.UseEncoding(Encoding.UTF8));
 }
예제 #19
0
 public static IClientSettingsBuilder UseEncoding(this IClientSettingsBuilder builder, string encoding)
 {
     return(builder.UseEncoding(Encoding.GetEncoding(encoding)));
 }
예제 #20
0
 public static IClientSettingsBuilder UseJwtAuthentication(this IClientSettingsBuilder builder, string token)
 {
     return(builder.UseAuthenticator(new JwtRequestAuthenticator(token)));
 }
예제 #21
0
 public static IClientSettingsBuilder UseSerializer <T>(this IClientSettingsBuilder builder)
     where T : class, IContentSerializer
 {
     return(builder.UseSerializer(typeof(T)));
 }
예제 #22
0
 public static IClientSettingsBuilder OnRequest(this IClientSettingsBuilder builder, Action <IRestRequest> handler)
 {
     return(builder.OnRequest((client, request) => handler(request)));
 }
예제 #23
0
 public static IClientSettingsBuilder DefaultToXml(this IClientSettingsBuilder builder)
 {
     return(builder.DefaultToFormat(ContentFormat.Xml));
 }
예제 #24
0
 public static IRestClientSettings Build(this IClientSettingsBuilder builder)
 {
     return(builder.Build(new DefaultBuildContext()));
 }
예제 #25
0
 public static IClientSettingsBuilder OnRequest <T>(this IClientSettingsBuilder builder)
     where T : class, IRequestHandler
 {
     return(builder.OnRequest(typeof(T)));
 }
예제 #26
0
 public static IClientSettingsBuilder UseXmlSerializer(this IClientSettingsBuilder builder,
                                                       XmlReaderSettings readerSettings, XmlWriterSettings writerSettings)
 {
     return(builder.UseSerializer(new XmlContentSerializer(readerSettings, writerSettings)));
 }
예제 #27
0
 public static IClientSettingsBuilder OnResponse(this IClientSettingsBuilder builder, Func <IRestResponse, Task> handler)
 {
     return(builder.OnResponse((client, request) => handler(request)));
 }
예제 #28
0
 public static IClientSettingsBuilder UseXmlSerializer(this IClientSettingsBuilder builder)
 {
     return(builder.UseXmlSerializer(new XmlReaderSettings(), new XmlWriterSettings()));
 }
예제 #29
0
 public static IClientSettingsBuilder UseCulture(this IClientSettingsBuilder builder, string cultureName)
 {
     return(builder.UseCulture(new CultureInfo(cultureName)));
 }
예제 #30
0
 public static IClientSettingsBuilder DefaultToKeyValue(this IClientSettingsBuilder builder)
 {
     return(builder.DefaultToFormat(ContentFormat.KeyValue));
 }