public async Task <GameTransaction> GenerateGameTransactionId(UserGameKey userGameKey, GameTransactionType gameTransactionType) { if (userGameKey.IsFunPlay) { return new GameTransaction { Id = 0, DateTimeUtc = DateTime.UtcNow } } ; using (var db = databaseManager.GetWritableDatabase()) { var gameTransaction = new GameTransaction { UserId = userGameKey.UserId, GameId = userGameKey.GameId, Type = gameTransactionType }; db.GameTransactions.Add(gameTransaction); await db.SaveChangesAsync(); return(gameTransaction); } }
public async Task UpdateGameTransaction(GameTransaction gameTransaction) { using (var db = databaseManager.GetWritableDatabase()) { db.GameTransactions.Update(gameTransaction); await db.SaveChangesAsync(); } }
private async Task <long> _addTransaction(IDbConnection db, IDbTransaction tx, GameTransaction item) { try { var t = await db.ExecuteAsync($"insert into {T_Transaction} (AccountName,TransactionAmount,TransactionType,TransactionTime,Comment,AfterAmount,ReferenceId) values (@AccountName,@TransactionAmount,@TransactionType,@TransactionTime,@Comment,@AfterAmount,@ReferenceId)", item, tx); if (t < 1) { throw new Exception(WalletException.TransactionFailed); } long tid = await db.QueryFirstAsync <long>($"select last_insert_id()", null, tx); return(tid); } catch (Exception ex) { _logger.LogCritical(ex, ""); throw new WalletException(WalletException.TransactionFailed); } }