public static IOperationClientBuilder AddGraphQLClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IGraphQLClient, GraphQLClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new CatalogProductDtoFilterSerializer()) .AddValueSerializer(() => new CreateProductInputSerializer()) .AddValueSerializer(() => new UpdateProductInputSerializer()) .AddValueSerializer(() => new DeleteProductInputSerializer()) .AddResultParser(serializers => new GetProductsResultParser(serializers)) .AddResultParser(serializers => new GetCategoriesResultParser(serializers)) .AddResultParser(serializers => new GetInventoriesResultParser(serializers)) .AddResultParser(serializers => new CreateProductMutationResultParser(serializers)) .AddResultParser(serializers => new UpdateProductMutationResultParser(serializers)) .AddResultParser(serializers => new DeleteProductMutationResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(b => b.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); return(builder); }
public static IOperationClientBuilder AddOperationPipeline <T>( this IOperationClientBuilder builder, Func <IServiceProvider, OperationDelegate <T> > factory) where T : IOperationContext => builder.ConfigureClient((sp, o) => o.OperationPipelines.Add(pipelines => pipelines.Add(factory(sp))));
public static IOperationClientBuilder AddGitHubClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IGitHubClient, GitHubClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddResultParser(serializers => new GetUserResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); serviceCollection.TryAddEnumerable(new ServiceDescriptor( typeof(ISocketConnectionInterceptor), typeof(MessagePipelineHandler), ServiceLifetime.Singleton)); return(builder); }
public static IOperationClientBuilder AddSchemaRegistryClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <ISchemaRegistryClient, SchemaRegistryClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <global::System.Net.Http.IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new TagInputSerializer()) .AddResultParser(serializers => new PublishSchemaResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); return(builder); }
public static IOperationClientBuilder AddMyHobbyPalClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IMyHobbyPalClient, MyHobbyPalClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new UpsertPersonInputSerializer()) .AddValueSerializer(() => new UpsertHobbyForPersonInputSerializer()) .AddResultParser(serializers => new GetAllPersonsResultParser(serializers)) .AddResultParser(serializers => new GetPersonWithHobbiesResultParser(serializers)) .AddResultParser(serializers => new UpsertPersonResultParser(serializers)) .AddResultParser(serializers => new UpsertHobbyForPersonResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); return(builder); }
public static IOperationClientBuilder AddStarWarsClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IStarWarsClient, StarWarsClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddResultParser(serializers => new GetHumanResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); return(builder); }
public static IOperationClientBuilder AddOperationPipeline <T>( this IOperationClientBuilder builder, Func <OperationDelegate <T> > factory) where T : IOperationContext => builder.ConfigureClient(o => o.OperationPipelines.Add(pipelines => pipelines.Add(factory())));
public static IOperationClientBuilder AddChatClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IChatClient, ChatClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new DirectionValueSerializer()) .AddValueSerializer(() => new LoginInputSerializer()) .AddValueSerializer(() => new CreateUserInputSerializer()) .AddResultParser(serializers => new PeopleResultParser(serializers)) .AddResultParser(serializers => new GetPeopleAndRecipientResultParser(serializers)) .AddResultParser(serializers => new RecipientByIdResultParser(serializers)) .AddResultParser(serializers => new SendMessageResultParser(serializers)) .AddResultParser(serializers => new SignInResultParser(serializers)) .AddResultParser(serializers => new SignUpResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); return(builder); }
public static IOperationClientBuilder AddValueSerializer( this IOperationClientBuilder builder, Func <IValueSerializer> factory) => builder.ConfigureClient(o => o.ValueSerializers.Add(serializers => { IValueSerializer serializer = factory(); serializers[serializer.Name] = serializer; }));
public static IOperationClientBuilder AddResultParser( this IOperationClientBuilder builder, Func <IValueSerializerCollection, IResultParser> factory) => builder.ConfigureClient(o => o.ResultParsers.Add((serializers, parsers) => { IResultParser parser = factory(serializers); parsers[parser.ResultType] = parser; }));
public static IOperationClientBuilder AddHttpOperationPipeline( this IOperationClientBuilder builder, Action <IOperationPipelineBuilder <IHttpOperationContext> > configure) => builder.AddOperationPipeline(sp => { OperationPipelineBuilder <IHttpOperationContext> builder = OperationPipelineBuilder <IHttpOperationContext> .New(); configure(builder); return(builder.Build(sp)); });
public static IOperationClientBuilder AddChatClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IChatClient, ChatClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); serviceCollection.AddSingleton <IOperationStreamExecutorFactory>(sp => new SocketOperationStreamExecutorFactory( _clientName, sp.GetRequiredService <ISocketConnectionPool>().RentAsync, sp.GetRequiredService <ISubscriptionManager>(), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new DirectionValueSerializer()) .AddValueSerializer(() => new LoginInputSerializer()) .AddValueSerializer(() => new CreateUserInputSerializer()) .AddResultParser(serializers => new PeopleResultParser(serializers)) .AddResultParser(serializers => new GetPeopleAndRecipientResultParser(serializers)) .AddResultParser(serializers => new RecipientByIdResultParser(serializers)) .AddResultParser(serializers => new SendMessageResultParser(serializers)) .AddResultParser(serializers => new SignInResultParser(serializers)) .AddResultParser(serializers => new SignUpResultParser(serializers)) .AddResultParser(serializers => new UserIsTypingResultParser(serializers)) .AddResultParser(serializers => new OnMessageReceivedResultParser(serializers)) .AddResultParser(serializers => new OnUserOnlineStatusChangedResultParser(serializers)) .AddResultParser(serializers => new OnUserIsTypingResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <ISubscriptionManager, SubscriptionManager>(); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); serviceCollection.TryAddEnumerable(new ServiceDescriptor( typeof(ISocketConnectionInterceptor), typeof(MessagePipelineHandler), ServiceLifetime.Singleton)); return(builder); }
public static IOperationClientBuilder AddSchemaRegistryClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <ISchemaRegistryClient, SchemaRegistryClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <System.Net.Http.IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); serviceCollection.AddSingleton <IOperationStreamExecutorFactory>(sp => new SocketOperationStreamExecutorFactory( _clientName, sp.GetRequiredService <ISocketConnectionPool>().RentAsync, sp.GetRequiredService <ISubscriptionManager>(), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new QueryFileFormatValueSerializer()) .AddValueSerializer(() => new IssueTypeValueSerializer()) .AddValueSerializer(() => new ResolutionTypeValueSerializer()) .AddValueSerializer(() => new HashFormatValueSerializer()) .AddValueSerializer(() => new TagInputSerializer()) .AddValueSerializer(() => new QueryFileInputSerializer()) .AddResultParser(serializers => new PublishSchemaResultParser(serializers)) .AddResultParser(serializers => new MarkSchemaPublishedResultParser(serializers)) .AddResultParser(serializers => new PublishClientResultParser(serializers)) .AddResultParser(serializers => new MarkClientPublishedResultParser(serializers)) .AddResultParser(serializers => new OnPublishDocumentResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <ISubscriptionManager, SubscriptionManager>(); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); serviceCollection.TryAddEnumerable(new ServiceDescriptor( typeof(ISocketConnectionInterceptor), typeof(MessagePipelineHandler), ServiceLifetime.Singleton)); return(builder); }
public static IOperationClientBuilder AddStarWarsClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IStarWarsClient, StarWarsClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); serviceCollection.AddSingleton <IOperationStreamExecutorFactory>(sp => new SocketOperationStreamExecutorFactory( _clientName, sp.GetRequiredService <ISocketConnectionPool>().RentAsync, sp.GetRequiredService <ISubscriptionManager>(), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new EpisodeValueSerializer()) .AddValueSerializer(() => new ReviewInputSerializer()) .AddResultParser(serializers => new GetHeroResultParser(serializers)) .AddResultParser(serializers => new GetHumanResultParser(serializers)) .AddResultParser(serializers => new SearchResultParser(serializers)) .AddResultParser(serializers => new CreateReviewResultParser(serializers)) .AddResultParser(serializers => new OnReviewResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(builder => builder.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <ISubscriptionManager, SubscriptionManager>(); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); serviceCollection.TryAddEnumerable(new ServiceDescriptor( typeof(ISocketConnectionInterceptor), typeof(MessagePipelineHandler), ServiceLifetime.Singleton)); return(builder); }
/// <summary> /// Configures the client options that will be used to create a operation client. /// </summary> /// <param name="builder"> /// The <see cref="IServiceCollection"/>. /// </param> /// <param name="configure"> /// A delegate that is used to configure the <see cref="ClientOptions"/>. /// </param> /// <returns> /// An <see cref="IOperationClientBuilder"/> that can be used to configure the client. /// </returns> public static IOperationClientBuilder ConfigureClient( this IOperationClientBuilder builder, Action <ClientOptionsModifiers> configure) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.Services.Configure <ClientOptionsModifiers>( builder.Name, options => configure(options)); return(builder); }
/// <summary> /// Adds a delegate that will be used to configure a named <see cref="WebSocketClient"/>. /// </summary> /// <param name="builder"> /// The <see cref="IServiceCollection"/>. /// </param> /// <param name="configureClient"> /// A delegate that is used to configure an <see cref="WebSocketClient"/>. /// </param> /// <returns> /// An <see cref="IWebSocketClientBuilder"/> that can be used to configure the client. /// </returns> /// <remarks> /// The <see cref="IServiceProvider"/> provided to <paramref name="configureClient"/> /// will be the application's root service provider instance. /// </remarks> public static IOperationClientBuilder ConfigureClient( this IOperationClientBuilder builder, Action <IServiceProvider, ClientOptionsModifiers> configureClient) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureClient == null) { throw new ArgumentNullException(nameof(configureClient)); } builder.Services.AddTransient <IConfigureOptions <ClientOptionsModifiers> >(sp => new ConfigureNamedOptions <ClientOptionsModifiers>( builder.Name, options => configureClient(sp, options))); return(builder); }
public static IOperationClientBuilder AddAlbumClient( this IServiceCollection serviceCollection) { if (serviceCollection is null) { throw new ArgumentNullException(nameof(serviceCollection)); } serviceCollection.AddSingleton <IAlbumClient, AlbumClient>(); serviceCollection.AddSingleton <IOperationExecutorFactory>(sp => new HttpOperationExecutorFactory( _clientName, sp.GetRequiredService <IHttpClientFactory>().CreateClient, sp.GetRequiredService <IClientOptions>().GetOperationPipeline <IHttpOperationContext>(_clientName), sp.GetRequiredService <IClientOptions>().GetOperationFormatter(_clientName), sp.GetRequiredService <IClientOptions>().GetResultParsers(_clientName))); IOperationClientBuilder builder = serviceCollection.AddOperationClientOptions(_clientName) .AddValueSerializer(() => new StatusValueSerializer()) .AddValueSerializer(() => new GeoCoordinateDirectionValueSerializer()) .AddValueSerializer(() => new ModelSortDirectionValueSerializer()) .AddValueSerializer(() => new ModelAttributeTypesValueSerializer()) .AddValueSerializer(() => new ModelPhotoFilterInputSerializer()) .AddValueSerializer(() => new ModelIDInputSerializer()) .AddValueSerializer(() => new ModelStringInputSerializer()) .AddValueSerializer(() => new ModelStatusInputSerializer()) .AddValueSerializer(() => new ModelSizeInputSerializer()) .AddResultParser(serializers => new GetAlbumResultParser(serializers)) .AddResultParser(serializers => new ListAlbumsResultParser(serializers)) .AddResultParser(serializers => new GetPhotoResultParser(serializers)) .AddResultParser(serializers => new ListPhotosResultParser(serializers)) .AddResultParser(serializers => new ListPhotosByAlbumUploadTimeResultParser(serializers)) .AddOperationFormatter(serializers => new JsonOperationFormatter(serializers)) .AddHttpOperationPipeline(b => b.UseHttpDefaultPipeline()); serviceCollection.TryAddSingleton <IOperationExecutorPool, OperationExecutorPool>(); return(builder); }
public static IOperationClientBuilder AddOperationFormatter( this IOperationClientBuilder builder, Func <IValueSerializerCollection, IOperationFormatter> factory) => builder.ConfigureClient(o => o.OperationFormatter = serializer => factory(serializer));