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
     });
 }
        public void OnActiveTransactionIdGenerated(Guid transactionId, int transactionNumber)
        {
            State = OperationExecutionState.ActiveTransactionIdGenerated;

            ActiveTransactionIdGenerationMoment = DateTime.UtcNow;

            ActiveTransactionId     = transactionId;
            ActiveTransactionNumber = transactionNumber;

            RebuildConfirmationResult = RebuildConfirmationResult.Unconfirmed;
        }