🐛 Fix transaction query
✨ Add orderes query
			
			
This commit is contained in:
		| @@ -49,25 +49,50 @@ public class WalletController(AppDatabase db, WalletService ws, PaymentService p | ||||
|         var accountWallet = await db.Wallets.Where(w => w.AccountId == currentUser.Id).FirstOrDefaultAsync(); | ||||
|         if (accountWallet is null) return NotFound(); | ||||
|  | ||||
|         var query = db.PaymentTransactions.AsQueryable() | ||||
|             .Where(t => | ||||
|                 (t.PayeeWalletId == null || t.PayeeWalletId == accountWallet.Id) && | ||||
|                 (t.PayerWalletId == null || t.PayerWalletId == accountWallet.Id) && | ||||
|                 !(t.PayerWalletId == null && t.PayeeWalletId == null) | ||||
|             ); | ||||
|         var query = db.PaymentTransactions | ||||
|             .Where(t => t.PayeeWalletId == accountWallet.Id || t.PayerWalletId == accountWallet.Id) | ||||
|             .AsQueryable(); | ||||
|  | ||||
|         var transactionCount = await query.CountAsync(); | ||||
|         Response.Headers["X-Total"] = transactionCount.ToString(); | ||||
|          | ||||
|         var transactions = await query | ||||
|             .Skip(offset) | ||||
|             .Take(take) | ||||
|             .OrderByDescending(t => t.CreatedAt) | ||||
|             .ToListAsync(); | ||||
|  | ||||
|         Response.Headers["X-Total"] = transactionCount.ToString(); | ||||
|  | ||||
|         return Ok(transactions); | ||||
|     } | ||||
|  | ||||
|     [HttpGet("orders")] | ||||
|     [Authorize] | ||||
|     public async Task<ActionResult<List<Order>>> GetOrders( | ||||
|         [FromQuery] int offset = 0, [FromQuery] int take = 20 | ||||
|     ) | ||||
|     { | ||||
|         if (HttpContext.Items["CurrentUser"] is not Account.Account currentUser) return Unauthorized(); | ||||
|          | ||||
|         var accountWallet = await db.Wallets.Where(w => w.AccountId == currentUser.Id).FirstOrDefaultAsync(); | ||||
|         if (accountWallet is null) return NotFound(); | ||||
|          | ||||
|         var query = db.PaymentOrders.AsQueryable() | ||||
|             .Include(o => o.Transaction) | ||||
|             .Where(o => o.Transaction != null && (o.Transaction.PayeeWalletId == accountWallet.Id || o.Transaction.PayerWalletId == accountWallet.Id)) | ||||
|             .AsQueryable(); | ||||
|          | ||||
|         var orderCount = await query.CountAsync(); | ||||
|         Response.Headers["X-Total"] = orderCount.ToString(); | ||||
|          | ||||
|         var orders = await query | ||||
|             .Skip(offset) | ||||
|             .Take(take) | ||||
|             .OrderByDescending(t => t.CreatedAt) | ||||
|             .ToListAsync(); | ||||
|  | ||||
|         return Ok(orders); | ||||
|     } | ||||
|  | ||||
|     public class WalletBalanceRequest | ||||
|     { | ||||
|         public string? Remark { get; set; } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user