Exemplo n.º 1
0
        public static IMessageDataRepository MessageDataRepositoryWithCallisto(string clientName, string database,
                                                                               IConfiguration configuration)
        {
            if (string.IsNullOrEmpty(database))
            {
                throw new CallistoException("Please provide a database to the SagaRepository");
            }
            CallistoConnectorOptions options = Helper.GetCallistoConnectionOptions(clientName, configuration);

            return(new MongoDbMessageDataRepository(options.CreateUrl(Helper.GetAppOptions(configuration)).ToString(), database));
        }
Exemplo n.º 2
0
        internal static ISagaRegistrationConfigurator <TSaga> AddSagaWithCallisto <TSaga>(ISagaRegistrationConfigurator <TSaga> configurator,
                                                                                          string clientName,
                                                                                          string database,
                                                                                          IConfiguration configuration)
            where TSaga : class, ISagaVersion
        {
            if (string.IsNullOrEmpty(database))
            {
                throw new CallistoException("Please provide a database to the SagaRepository");
            }
            CallistoConnectorOptions options = Helper.GetCallistoConnectionOptions(clientName, configuration);

            configurator.MongoDbRepository(options.CreateUrl(Helper.GetAppOptions(configuration)).ToString(),
                                           repositoryConfigurator => { repositoryConfigurator.DatabaseName = database; });

            return(configurator);
        }
Exemplo n.º 3
0
        private static IMongoClient CreateFromOptions(CallistoConnectorOptions options, ApplicationOptions app)
        {
            CallistoJaegerEventListener eventListener = null;
            if (options.Trace)
            {
                if (GlobalTracer.Instance != null)
                {
                    eventListener = new CallistoJaegerEventListener(GlobalTracer.Instance, new EventFilter(), Options.Create(new CallistoTracerOptions()));
                }
            }

            MongoUrl url = options.CreateUrl(app);
            MongoClientSettings settings = url.CreateMongoClientSettings();
            if (eventListener != null)
                settings.ConfigureTracing(options.Trace, eventListener);
            return settings.CreateMongoClient();
        }
Exemplo n.º 4
0
        public ICallistoClientConfigurator RegisterClient(string clientName, Action <ICallistoCollectionConfigurator> configureCollections)
        {
            Check.ThrowIfNullOrEmpty(clientName, nameof(clientName), new CallistoException("Please provide the name of the client that should be registered."));
            _builder.AddBuildAction(new BuildAction($"Registering Callisto client with name: {clientName}")
            {
                Action = provider =>
                {
                    CallistoConnectorOptions clientOptions = _clients.GetCallistoConnectorOptions(clientName);

                    if (clientOptions is null)
                    {
                        throw new CallistoException($"The options for client '{clientName}' was not found. Check the AppSettings file.");
                    }

                    var registry                  = provider.GetRequiredService <ICallistoClientRegistry>();
                    var eventListener             = provider.GetRequiredService <ICallistoEventListener>();
                    ApplicationOptions appOptions = _builder.Configuration.GetApplicationOptions();
                    registry.AddClient(clientName, clientOptions.CreateUrl(appOptions)
                                       .CreateMongoClientSettings()
                                       .ConfigureTracing(clientOptions.Trace, eventListener)
                                       .CreateMongoClient()
                                       .CreateCallistoClient());
                }
            });
Exemplo n.º 5
0
        private static MongoUrl CreateUrl(CallistoConnectorOptions options, ApplicationOptions app)
        {
            MongoUrl url = options.CreateUrl(app);

            return(url);
        }