コード例 #1
0
        private static void ResourceInitialize(string resourceName)
        {
            var src      = new StringResourcesCache();
            var manifest = src[resourceName + ".json"];

            Initialize(manifest);
        }
コード例 #2
0
        public WorkflowHost()
        {
            var cf = Catalog.Factory.Resolve <IConfig>(SpecialFactoryContexts.Routed);

            _queueConnection = WorkflowShared.GetMessageQueueHost(cf);



            _wfTemplates = Catalog.Preconfigure()
                           .Add(BlobContainerLocalConfig.ContainerName, WFHostContainerName)
                           .Add(BlobContainerLocalConfig.OptionalAccess, EntityAccess.Private)
                           .Add(BlobContainerLocalConfig.OptionalContentType, "application/json")
                           .ConfiguredResolve <IFilesContainer>();

            _stringResources = Catalog.Factory.Resolve <StringResourcesCache>();

            var hostEnvironment = Catalog.Factory.Resolve <IHostEnvironment>();
            var _hostId         = hostEnvironment.GetCurrentHostIdentifier(HostEnvironmentConstants.DefaultHostScope);

            WorkflowShared.DeclareWorkflowExchanges(_queueConnection, cf[WorkflowConfiguration.WorkflowMessagingKey]);
            WorkflowShared.AttachQueueToWorkflowExchange(_queueConnection, _hostId, cf[WorkflowConfiguration.WorkflowMessagingKey]);
            WorkflowShared.AttachedQueueToWorkflowBroadcast(_queueConnection, _hostId, cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _publisher = Catalog.Preconfigure()
                         .Add(MessagePublisherLocalConfig.HostConnectionString, _queueConnection)
                         .Add(MessagePublisherLocalConfig.ExchangeName, WorkflowShared.WorkflowExchange)
                         .ConfiguredResolve <IMessagePublisher>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _broadcaster = Catalog.Preconfigure()
                           .Add(MessagePublisherLocalConfig.HostConnectionString, _queueConnection)
                           .Add(MessagePublisherLocalConfig.ExchangeName, WorkflowShared.WorkflowFanoutExchange)
                           .ConfiguredResolve <IMessagePublisher>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _listener = Catalog.Preconfigure()
                        .Add(MessageListenerLocalConfig.HostConnectionString, _queueConnection)
                        .Add(MessageListenerLocalConfig.ExchangeName, WorkflowShared.WorkflowExchange)
                        .Add(MessageListenerLocalConfig.QueueName, _hostId)
                        .ConfiguredResolve <IMessageListener>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _broadcastListener = Catalog.Preconfigure()
                                 .Add(MessageListenerLocalConfig.HostConnectionString, _queueConnection)
                                 .Add(MessageListenerLocalConfig.ExchangeName, WorkflowShared.WorkflowFanoutExchange)
                                 .Add(MessageListenerLocalConfig.QueueName, _hostId)
                                 .ConfiguredResolve <IMessageListener>(cf[WorkflowConfiguration.WorkflowMessagingKey]);

            _machineStateData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowMachineState>()
                                .ConfiguredResolve <IDataRepositoryService <WorkflowMachineState,
                                                                            WorkflowMachineState,
                                                                            DataEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata,
                                                                            DatumEnvelope <WorkflowMachineState, NoMetadata>,
                                                                            NoMetadata> >
                                    (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _instanceData = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowInstanceInfo>()
                            .ConfiguredResolve <IDataRepositoryService <WorkflowInstanceInfo,
                                                                        WorkflowInstanceInfo,
                                                                        DataEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata,
                                                                        DatumEnvelope <WorkflowInstanceInfo, NoMetadata>,
                                                                        NoMetadata> >
                                (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);

            _triggers = Catalog.Preconfigure().ConfigureWorkflowDataRepository <WorkflowTrigger>()
                        .ConfiguredResolve <IDataRepositoryService <WorkflowTrigger,
                                                                    WorkflowTrigger,
                                                                    DataEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata,
                                                                    DatumEnvelope <WorkflowTrigger, NoMetadata>,
                                                                    NoMetadata> >
                            (cf[WorkflowConfiguration.WorkflowDataRepositoryKey]);


            _workflowDataRepositoryKey = cf[WorkflowConfiguration.WorkflowDataRepositoryKey];
            _workflowMessagingKey      = cf[WorkflowConfiguration.WorkflowMessagingKey];
            _workflowWorkspaceKey      = cf[WorkflowConfiguration.WorkflowWorkspaceKey];
        }