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)); }
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); }