示例#1
0
        public static WorkDataLogProcessor InitialiseWorkDataLogProcessor(CloudTable workTable, CloudTable workRegistryTable,
                                                                          ICollector <string> ipfsImageProcesssinQueue)
        {
            var web3 = new Web3(ConfigurationSettings.GetEthereumRpcUrl());
            var workSearchService      = InitialiseWorkSearchService();
            var workRepository         = new WorkRepository(workTable);
            var workRegistryRepository = new WorkRegistryRepository(workRegistryTable);
            var ipfsQueue = new IpfsImageQueue(ipfsImageProcesssinQueue);

            Ujo.Repository.MappingBootstrapper.Initialise();
            var musicRecordingService = new MusicRecordingService(new UnitOfWork(new UjoContext(ConfigurationSettings.GetRepositoryConnectionString())));

            return(WorkDataLogProcessor.Create(web3, workRegistryRepository, ipfsQueue, workRepository, workSearchService, musicRecordingService));
        }
示例#2
0
        public static BlockchainRegistryProcessor InitialiseBlockchainRegistryProcessor(TextWriter log,
                                                                                        ICollector <RegistrationMessage> workRegisteredUnregisteredQueue, Web3 web3, AzureTable workRegistryTable)
        {
            var service = new RegistryService(web3, ConfigurationSettings.GetWorkRegistryContractAddress());

            var workByteCodeMatcher = new ByteCodeMatcher(web3, new WorkContractDefinition());
            var logger             = new TextWriterLogger(log);
            var storageService     = new WorkRegistryRepository(workRegistryTable);
            var registryQueue      = new QueueRegistryProcessorService(new QueueRegistry(workRegisteredUnregisteredQueue));
            var processingServices = new IRegistryProcessingService[] { storageService, registryQueue };

            var blockchainRegistryProcessor = new BlockchainRegistryProcessor(web3, service, logger, processingServices,
                                                                              workByteCodeMatcher);

            return(blockchainRegistryProcessor);
        }