/// <summary> /// Convenience method for adding an item easily to the Transactional Outbox using Default implementations (e.g. GUID identifier). /// This method assumes the current Transaction and associated Connection is valid and will use it but will not commit the Transaction! /// </summary> /// <typeparam name="TPayload"></typeparam> /// <param name="sqlTransaction"></param> /// <param name="outboxInsertionItems"></param> /// <returns></returns> public static async Task <List <ISqlTransactionalOutboxItem <Guid> > > AddTransactionalOutboxPendingItemListAsync <TPayload>( this SqlTransaction sqlTransaction, IEnumerable <ISqlTransactionalOutboxInsertionItem <TPayload> > outboxInsertionItems ) { sqlTransaction.AssertSqlTransactionIsValid(); //SAVE the Item to the Outbox... var outbox = new DefaultSqlServerTransactionalOutbox <TPayload>(sqlTransaction); var outboxItems = await outbox .InsertNewPendingOutboxItemsAsync(outboxInsertionItems) .ConfigureAwait(false); return(outboxItems); }
/// <summary> /// Convenience method for adding an item easily to the Transactional Outbox using Default implementations (e.g. GUID identifier). /// This method assumes the current Transaction and associated Connection is valid and will use it but will not commit the Transaction! /// </summary> /// <typeparam name="TPayload"></typeparam> /// <param name="sqlTransaction"></param> /// <param name="publishTarget"></param> /// <param name="jsonPayload"></param> /// <param name="fifoGroupingIdentifier"></param> /// <returns></returns> public static async Task <ISqlTransactionalOutboxItem <Guid> > AddTransactionalOutboxPendingItemAsync <TPayload>( this SqlTransaction sqlTransaction, string publishTarget, TPayload payload, string fifoGroupingIdentifier = null ) { sqlTransaction.AssertSqlTransactionIsValid(); //SAVE the Item to the Outbox... var outbox = new DefaultSqlServerTransactionalOutbox <TPayload>(sqlTransaction); var outboxItem = await outbox.InsertNewPendingOutboxItemAsync( publishingTarget : publishTarget, publishingPayload : payload, fifoGroupingIdentifier : fifoGroupingIdentifier ).ConfigureAwait(false); return(outboxItem); }