public Uploader(ConnectionConfig connectionConfig) { CreateProximaxDataService = new CreateProximaxDataService(connectionConfig.FileStorageConnection); CreateProximaxMessagePayloadService = new CreateProximaxMessagePayloadService(); BlockchainTransactionService = new BlockchainTransactionService(connectionConfig.BlockchainNetworkConnection); }
internal Uploader(BlockchainTransactionService blockchainTransactionService, CreateProximaxDataService proximaxDataService, CreateProximaxMessagePayloadService proximaxMessagePayloadService) { BlockchainTransactionService = blockchainTransactionService; CreateProximaxDataService = proximaxDataService; CreateProximaxMessagePayloadService = proximaxMessagePayloadService; }
private IObservable <UploadResult> DoUpload(UploadParameter uploadParam) { try { var uploadResult = CreateProximaxDataService.CreateData(uploadParam).SelectMany(uploadedData => CreateProximaxMessagePayloadService.CreateMessagePayload(uploadParam, uploadedData) .SelectMany(messagePayload => CreateAndAnnounceTransaction(uploadParam, messagePayload) .Select(transactionHash => CreateUploadResult(messagePayload, transactionHash)))).Wait(); return(Observable.Return(uploadResult)); } catch (Exception ex) { return(Observable.Throw <UploadResult>(new UploadFailureException("Upload failed.", ex))); } }