Пример #1
0
        public async Task AddAsync(IAccountBalanceChange change)
        {
            var entity = _convertService.Convert <AccountBalanceChangeEntity>(change);

            using (var conn = new SqlConnection(_settings.Db.ConnectionString))
            {
                try
                {
                    try
                    {
                        await conn.ExecuteAsync(
                            $"insert into {TableName} ({GetColumns}) values ({GetFields})", entity);
                    }
                    catch (SqlException)
                    {
                        await conn.ExecuteAsync(
                            $"update {TableName} set {GetUpdateClause} where Id=@Id", entity);
                    }
                }
                catch (Exception ex)
                {
                    var msg = $"Error {ex.Message} \n" +
                              "Entity <AccountBalanceChangeEntity>: \n" +
                              entity.ToJson();
                    await _log.WriteWarningAsync(nameof(AccountBalanceChangesRepository), nameof(AddAsync), null, msg);

                    throw new Exception(msg);
                }
            }
        }
Пример #2
0
 public async Task AddAsync(IAccountBalanceChange change)
 {
     var entity = _convertService.Convert <AccountBalanceChangeEntity>(change);
     // ReSharper disable once RedundantArgumentDefaultValue
     await _tableStorage.InsertAndGenerateRowKeyAsDateTimeAsync(entity, entity.ChangeTimestamp,
                                                                RowKeyDateTimeFormat.Iso);
 }
 private AccountBalanceChangeContract Convert(IAccountBalanceChange arg)
 {
     return(new AccountBalanceChangeContract(arg.Id, arg.ChangeTimestamp, arg.AccountId, arg.ClientId,
                                             arg.ChangeAmount, arg.Balance, arg.WithdrawTransferLimit, arg.Comment,
                                             Enum.Parse <AccountBalanceChangeReasonTypeContract>(arg.ReasonType.ToString()),
                                             arg.EventSourceId, arg.LegalEntity, arg.AuditLog, arg.Instrument, arg.TradingDate));
 }