/// <summary> /// Configures the messaging client to connect the remote web handler. /// </summary> public static MessagingClientBuilder UseWeb(this MessagingClientBuilder builder, Action <IHttpClientBuilder> configureBuilder) { var clientBuilder = builder.Services.AddRemoteWebMessagingClient(); configureBuilder.Invoke(clientBuilder); return(builder); }
/// <summary> /// Configures the messaging client to connect a MongoDB database from a client. /// </summary> public static MessagingClientBuilder UseMongo(this MessagingClientBuilder builder, IConfigurationSection configuration) { builder.Services .AddMongoClientFactory() .ConfigureMongoOptions(builder.Name, configuration); return(builder); }
/// <summary> /// Registers remote WEB handler of <paramref name="messageType" />. /// </summary> /// <remarks> /// Pay attention, it requires calling <see cref="UseWeb"/>. /// </remarks> /// <exception cref="ArgumentException"/> public static MessagingClientBuilder AddWeb(this MessagingClientBuilder builder, Type messageType) { if (!messageType.IsMessage()) { throw new ArgumentException("Invalid message type.", nameof(messageType)); } builder.Services.ConfigureMessagingClientOptions(builder.Name, o => o.AddWeb(messageType)); return(builder); }
/// <summary> /// Registers remote MongoDB based handler of <paramref name="messageType" /> from a client. /// </summary> /// <remarks> /// Pay attention, it requires calling one of UseMongo method. /// </remarks> /// <exception cref="ArgumentException"/> public static MessagingClientBuilder AddMongo(this MessagingClientBuilder builder, Type messageType) { if (!messageType.IsMessage()) { throw new ArgumentException($"Expected message but provided {messageType}.", nameof(messageType)); } builder.Services .TryAddSingleton <ExceptionModelConverter>() .ConfigureMessagingClientOptions(builder.Name, o => o.AddMongo(messageType)); return(builder); }
/// <summary> /// Registers remote WEB handler of <typeparamref name="TMessage" />. /// </summary> /// <remarks> /// Pay attention, it requires calling <see cref="UseWeb"/>. /// </remarks> /// <typeparam name="TMessage">Specific message type to be handled remotely.</typeparam> /// <exception cref="ArgumentException"/> public static MessagingClientBuilder AddWeb <TMessage>(this MessagingClientBuilder builder) where TMessage : class, IAbstractMessage => builder.AddWeb(typeof(TMessage));
/// <summary> /// Configures the messaging client to connect a MongoDB database from a client. /// </summary> public static MessagingClientBuilder UseMongo(this MessagingClientBuilder builder, string connectionString) => builder.UseMongo(o => o.ConnectionString = connectionString);