public Task AddAsync(IOrderHistory order, ITrade trade)
 {
     return(TransactionWrapperExtensions.RunInTransactionAsync(
                (conn, transaction) => DoAdd(conn, transaction, order, trade),
                _connectionString,
                RollbackExceptionHandler,
                commitException => CommitExceptionHandler(commitException, order, trade)));
 }
        public async Task AddAsync(IPositionHistory positionHistory, IDeal deal)
        {
            await TransactionWrapperExtensions.RunInTransactionAsync(
                (conn, transaction) => DoAdd(conn, transaction, positionHistory, deal),
                _connectionString,
                RollbackExceptionHandler,
                commitException => CommitExceptionHandler(commitException, positionHistory, deal));

            if (deal != null)
            {
                Task.Run(async() =>
                {
                    using (var conn = new SqlConnection(_connectionString))
                    {
                        try
                        {
                            await conn.ExecuteAsync("[dbo].[UpdateDealCommissionParamsOnDeal]",
                                                    new
                            {
                                deal.DealId,
                                deal.OpenTradeId,
                                deal.OpenOrderVolume,
                                deal.CloseTradeId,
                                deal.CloseOrderVolume,
                                deal.Volume,
                            },
                                                    commandType: CommandType.StoredProcedure);
                        }
                        catch (Exception e)
                        {
                            await _log.WriteErrorAsync(nameof(PositionsHistorySqlRepository),
                                                       nameof(AddAsync),
                                                       $"Failed to calculate commissions for the deal {deal.DealId}, skipping.", e);
                        }
                    }
                });
            }
        }