示例#1
0
        /// <summary>
        /// Configures the Cosmos Saga Repository
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="configure"></param>
        /// <typeparam name="TSaga"></typeparam>
        /// <returns></returns>
        public static ISagaRegistrationConfigurator <TSaga> CosmosRepository <TSaga>(this ISagaRegistrationConfigurator <TSaga> configurator,
                                                                                     Action <ICosmosSagaRepositoryConfigurator <TSaga> > configure)
            where TSaga : class, ISaga
        {
            var repositoryConfigurator = new CosmosSagaRepositoryConfigurator <TSaga>();

            configure?.Invoke(repositoryConfigurator);

            BusConfigurationResult.CompileResults(repositoryConfigurator.Validate());

            configurator.Repository(x => repositoryConfigurator.Register(x));

            return(configurator);
        }
示例#2
0
        /// <summary>
        /// Configures the Cosmos Saga Repository.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="accountEndpoint">The endpointUri of the database</param>
        /// <param name="key">The authentication key of the database</param>
        /// <param name="configure"></param>
        /// <typeparam name="TSaga"></typeparam>
        /// <returns></returns>
        public static ISagaRegistrationConfigurator <TSaga> CosmosRepository <TSaga>(this ISagaRegistrationConfigurator <TSaga> configurator,
                                                                                     string accountEndpoint, string key, Action <ICosmosSagaRepositoryConfigurator <TSaga> > configure)
            where TSaga : class, ISaga
        {
            var repositoryConfigurator = new CosmosSagaRepositoryConfigurator <TSaga>
            {
                EndpointUri = accountEndpoint,
                Key         = key
            };

            configure?.Invoke(repositoryConfigurator);

            BusConfigurationResult.CompileResults(repositoryConfigurator.Validate());

            configurator.Repository(x => repositoryConfigurator.Register(x));

            return(configurator);
        }