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); } } }
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)); }