Ejemplo n.º 1
0
        public FileBasedFabric(
            ITransitionRunner transitionRunner,
            INumericIdGenerator numericIdGenerator,
            IFileBasedFabricSerializerFactoryAdvisor serializerFactoryAdvisor,
            INumericIdGenerator idGenerator)
        {
            _transitionRunner = transitionRunner;

            Directory            = Path.GetFullPath(Path.Combine(System.IO.Directory.GetCurrentDirectory(), "data"));
            TransitionsDirectory = Path.Combine(Directory, "transitions");
            RoutinesDirectory    = Path.Combine(Directory, "routines");
            EventsDirectory      = Path.Combine(Directory, "events");

            var serializerFactory = serializerFactoryAdvisor.Advise();

            _serializationFormat = serializerFactory.Format;
            Serializer           = serializerFactory.Create();

            Connector = new FileBasedFabricConnector(
                numericIdGenerator,
                TransitionsDirectory,
                RoutinesDirectory,
                EventsDirectory,
                AddEventListener,
                Serializer,
                _serializationFormat);
        }
Ejemplo n.º 2
0
        public AzureFunctionsFabric(
            ISerializerFactorySelector serializerFactorySelector,
            INumericIdGenerator idGenerator,
            ITransitionRunner transitionRunner,
            IAzureWebJobsEnviromentalSettings azureWebJobsEnviromentalSettings,
            ICloudStorageAccountFactory cloudStorageAccountFactory,
            AzureFunctionsFabricSettings settings,
            IServiceProxyBuilder serviceProxyBuilder,
            IRoutineMethodResolver routineMethodResolver,
            IMethodInvokerFactory methodInvokerFactory,
            IServiceRegistry serviceRegistry)
        {
            _transitionRunner      = transitionRunner;
            _idGenerator           = idGenerator;
            _settings              = settings;
            _serviceProxyBuilder   = serviceProxyBuilder;
            _routineMethodResolver = routineMethodResolver;
            _methodInvokerFactory  = methodInvokerFactory;
            _serviceRegistry       = serviceRegistry;

#warning Need configurable serializer
            // Hard-code this for now.
            _defaultSerializer = serializerFactorySelector.Select("dasyncjson").Create();

            _storageAccountConnectionString = azureWebJobsEnviromentalSettings.DefaultStorageConnectionString;
            _storageAccount = cloudStorageAccountFactory.Create(_storageAccountConnectionString);

            //#warning make sure that site name is alpha-numeric and does not start with a number
            //            var prefix = azureWebJobsEnviromentalSettings.WebSiteName.ToLowerInvariant();
            var prefix = "";
            _routinesTable = _storageAccount.TableClient.GetTableReference(prefix + "routines");
            _servicesTable = _storageAccount.TableClient.GetTableReference(prefix + "services");
        }
Ejemplo n.º 3
0
        public InMemoryFabric(ITransitionRunner transitionRunner,
                              IInMemoryFabricSerializerFactoryAdvisor serializerFactoryAdvisor)
        {
            _transitionRunner = transitionRunner;
            DataStore         = InMemoryDataStore.Create(ScheduleMessage);
            var serializerFactory = serializerFactoryAdvisor.Advise();

            _serializationFormat = serializerFactory.Format;
            Serializer           = serializerFactory.Create();
            Connector            = new InMemoryFabricConnector(DataStore, Serializer, _serializationFormat);
        }
Ejemplo n.º 4
0
        public InMemoryFabric(ITransitionRunner transitionRunner,
                              IInMemoryFabricSerializerFactoryAdvisor serializerFactoryAdvisor,
                              IUniqueIdGenerator numericIdGenerator,
                              IServiceProviderScope serviceProviderScope)
        {
            _transitionRunner     = transitionRunner;
            _uniqueIdGenerator    = numericIdGenerator;
            _serviceProviderScope = serviceProviderScope;

            DataStore = InMemoryDataStore.Create(ScheduleMessage);
            var serializerFactory = serializerFactoryAdvisor.Advise();

            _serializationFormat = serializerFactory.Format;
            Serializer           = serializerFactory.Create();
            Connector            = new InMemoryFabricConnector(DataStore, Serializer, _serializationFormat);
        }