public static OperationExecutionAggregate Restore(
     string version,
     OperationExecutionState state,
     OperationExecutionResult?result,
     DateTime startMoment,
     DateTime?activeTransactionIdGenerationMoment,
     DateTime?activeTransactionExecutionStartMoment,
     DateTime?transactionExecutionRepetitionRequestMoment,
     DateTime?activeTransactionClearingMoment,
     DateTime?transactionFinishMoment,
     DateTime?finishMoment,
     Guid operationId,
     string fromAddress,
     IReadOnlyCollection <TransactionOutputValueType> outputs,
     string assetId,
     bool includeFee,
     string blockchainType,
     string blockchainAssetId,
     OperationExecutionEndpointsConfiguration endpointsConfiguration,
     Guid?activeTransactionId,
     int activeTransactionNumber,
     IReadOnlyCollection <TransactionOutputValueType> transactionOutputs,
     long transactionBlock,
     decimal transactionFee,
     string transactionHash,
     string error,
     RebuildConfirmationResult rebuildConfirmationResult)
 {
     return(new OperationExecutionAggregate(
                version,
                startMoment,
                operationId,
                fromAddress,
                outputs,
                assetId,
                includeFee,
                blockchainType,
                blockchainAssetId,
                endpointsConfiguration)
     {
         State = state,
         Result = result,
         ActiveTransactionIdGenerationMoment = activeTransactionIdGenerationMoment,
         ActiveTransactionStartMoment = activeTransactionExecutionStartMoment,
         TransactionFinishMoment = transactionFinishMoment,
         TransactionExecutionRepeatRequestMoment = transactionExecutionRepetitionRequestMoment,
         ActiveTransactionClearingMoment = activeTransactionClearingMoment,
         FinishMoment = finishMoment,
         ActiveTransactionId = activeTransactionId,
         ActiveTransactionNumber = activeTransactionNumber,
         TransactionOutputs = transactionOutputs,
         TransactionBlock = transactionBlock,
         TransactionFee = transactionFee,
         TransactionHash = transactionHash,
         Error = error,
         RebuildConfirmationResult = rebuildConfirmationResult
     });
 }
 private OperationExecutionAggregate(string version,
                                     DateTime startMoment,
                                     Guid operationId,
                                     string fromAddress,
                                     IReadOnlyCollection <TransactionOutputValueType> outputs,
                                     string assetId,
                                     bool includeFee,
                                     string blockchainType,
                                     string blockchainAssetId,
                                     OperationExecutionEndpointsConfiguration endpointsConfiguration)
 {
     Version                = version;
     StartMoment            = startMoment;
     OperationId            = operationId;
     FromAddress            = fromAddress;
     Outputs                = outputs;
     AssetId                = assetId;
     IncludeFee             = includeFee;
     BlockchainType         = blockchainType;
     BlockchainAssetId      = blockchainAssetId;
     EndpointsConfiguration = endpointsConfiguration;
 }
 public static OperationExecutionAggregate Start(Guid operationId,
                                                 string fromAddress,
                                                 IReadOnlyCollection <TransactionOutputValueType> outputs,
                                                 string assetId,
                                                 bool includeFee,
                                                 string blockchainType,
                                                 string blockchainAssetId,
                                                 OperationExecutionEndpointsConfiguration endpointsConfiguration)
 {
     return(new OperationExecutionAggregate(
                "*",
                DateTime.UtcNow,
                operationId,
                fromAddress,
                outputs,
                assetId,
                includeFee,
                blockchainType,
                blockchainAssetId,
                endpointsConfiguration)
     {
         State = OperationExecutionState.Started
     });
 }