mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-05-02 04:22:04 -04:00
LastOrDefaultAsync on EF requires OrderBy first
This commit is contained in:
@@ -128,7 +128,7 @@ public class RakebackCommand : ICommand
|
||||
var settings = await SettingsProvider.GetMultipleValuesAsync([
|
||||
BuiltIn.Keys.MoneyRakebackPercentage, BuiltIn.Keys.MoneyRakebackMinimumAmount
|
||||
]);
|
||||
var mostRecentRakeback = await db.Transactions.LastOrDefaultAsync(tx =>
|
||||
var mostRecentRakeback = await db.Transactions.OrderBy(x => x.Id).LastOrDefaultAsync(tx =>
|
||||
tx.EventSource == TransactionSourceEventType.Rakeback && tx.Gambler == gambler, cancellationToken: ctx);
|
||||
long offset = 0;
|
||||
if (mostRecentRakeback != null)
|
||||
@@ -177,7 +177,7 @@ public class LossbackCommand : ICommand
|
||||
var settings = await SettingsProvider.GetMultipleValuesAsync([
|
||||
BuiltIn.Keys.MoneyLossbackPercentage, BuiltIn.Keys.MoneyLossbackMinimumAmount
|
||||
]);
|
||||
var mostRecentLossback = await db.Transactions.LastOrDefaultAsync(tx =>
|
||||
var mostRecentLossback = await db.Transactions.OrderBy(x => x.Id).LastOrDefaultAsync(tx =>
|
||||
tx.EventSource == TransactionSourceEventType.Lossback && tx.Gambler == gambler, cancellationToken: ctx);
|
||||
long offset = 0;
|
||||
if (mostRecentLossback != null)
|
||||
|
||||
@@ -5,7 +5,6 @@ using KfChatDotNetBot.Settings;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
using JsonSerializer = System.Text.Json.JsonSerializer;
|
||||
|
||||
namespace KfChatDotNetBot.Extensions;
|
||||
|
||||
@@ -26,7 +25,7 @@ public static class MoneyExtensions
|
||||
await using var db = new ApplicationDbContext();
|
||||
db.Attach(user);
|
||||
var gambler =
|
||||
await db.Gamblers.LastOrDefaultAsync(g => g.User == user && g.State != GamblerState.PermanentlyBanned,
|
||||
await db.Gamblers.OrderBy(x => x.Id).LastOrDefaultAsync(g => g.User == user && g.State != GamblerState.PermanentlyBanned,
|
||||
cancellationToken: ct);
|
||||
if (!createIfNoneExists) return gambler;
|
||||
var permaBanned = await db.Gamblers.AnyAsync(g => g.User == user && g.State == GamblerState.PermanentlyBanned, cancellationToken: ct);
|
||||
@@ -43,7 +42,7 @@ public static class MoneyExtensions
|
||||
NextVipLevelWagerRequirement = Money.VipLevels[0].BaseWagerRequirement
|
||||
}, ct);
|
||||
await db.SaveChangesAsync(ct);
|
||||
return await db.Gamblers.LastOrDefaultAsync(g => g.User == user, cancellationToken: ct);
|
||||
return await db.Gamblers.OrderBy(x => x.Id).LastOrDefaultAsync(g => g.User == user, cancellationToken: ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -220,7 +219,7 @@ public static class MoneyExtensions
|
||||
{
|
||||
await using var db = new ApplicationDbContext();
|
||||
db.Attach(gambler);
|
||||
var perk = await db.Perks.LastOrDefaultAsync(
|
||||
var perk = await db.Perks.OrderBy(x => x.Id).LastOrDefaultAsync(
|
||||
p => p.Gambler == gambler && p.PerkType == GamblerPerkType.VipLevel, ct);
|
||||
return perk;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user