public async Task <NewTransactionResponse> BeginTransactionAsync(TransactionProperties transactionProperties, CancellationToken cancellationToken) { var timeout = transactionProperties.TransactionTimeout ?? this.transactionSettings.DefaultTransactionTimeout; if (timeout <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(transactionProperties), "transactionProperties.TransactionTimeout must be equal to or greater than 0"); } await this.StartTransactionTimeoutReminderAsync(timeout); await this.StateManager.AddStateAsync(StateConstants.TransactionEnd, timeout, cancellationToken); await this.StateManager.AddStateAsync(StateConstants.TransactionParticipants, TransactionParticipants.Empty, cancellationToken); var transactionId = new TransactionId(this.GetActorId()); await this.StateManager.AddStateAsync(StateConstants.TransactionEnd, timeout, cancellationToken); var commitKey = Guid.NewGuid(); await this.StateManager.AddStateAsync(StateConstants.CommitTransactionKey, commitKey, cancellationToken); await this.SetTransactionStateStatusAsync(TransactionStatus.Active, cancellationToken); return(new NewTransactionResponse(transactionId, commitKey)); }
private string PropToText(TransactionProperties prop) { int padding = 20; var debug = ""; debug += "Id".PadRight(padding, ' ') + ":" + prop.Tx + "\n"; debug += "Status".PadRight(padding, ' ') + ":" + prop.Status + "\n"; debug += "Length".PadRight(padding, ' ') + ":" + prop.Length + "\n"; debug += "Linked Tx's".PadRight(padding, ' ') + ":" + prop.LinkedTransactions.Count + "\n"; debug += "File Type: " + prop.FileType; return(debug); }