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([
|
var settings = await SettingsProvider.GetMultipleValuesAsync([
|
||||||
BuiltIn.Keys.MoneyRakebackPercentage, BuiltIn.Keys.MoneyRakebackMinimumAmount
|
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);
|
tx.EventSource == TransactionSourceEventType.Rakeback && tx.Gambler == gambler, cancellationToken: ctx);
|
||||||
long offset = 0;
|
long offset = 0;
|
||||||
if (mostRecentRakeback != null)
|
if (mostRecentRakeback != null)
|
||||||
@@ -177,7 +177,7 @@ public class LossbackCommand : ICommand
|
|||||||
var settings = await SettingsProvider.GetMultipleValuesAsync([
|
var settings = await SettingsProvider.GetMultipleValuesAsync([
|
||||||
BuiltIn.Keys.MoneyLossbackPercentage, BuiltIn.Keys.MoneyLossbackMinimumAmount
|
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);
|
tx.EventSource == TransactionSourceEventType.Lossback && tx.Gambler == gambler, cancellationToken: ctx);
|
||||||
long offset = 0;
|
long offset = 0;
|
||||||
if (mostRecentLossback != null)
|
if (mostRecentLossback != null)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using KfChatDotNetBot.Settings;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using NLog;
|
using NLog;
|
||||||
using JsonSerializer = System.Text.Json.JsonSerializer;
|
|
||||||
|
|
||||||
namespace KfChatDotNetBot.Extensions;
|
namespace KfChatDotNetBot.Extensions;
|
||||||
|
|
||||||
@@ -26,7 +25,7 @@ public static class MoneyExtensions
|
|||||||
await using var db = new ApplicationDbContext();
|
await using var db = new ApplicationDbContext();
|
||||||
db.Attach(user);
|
db.Attach(user);
|
||||||
var gambler =
|
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);
|
cancellationToken: ct);
|
||||||
if (!createIfNoneExists) return gambler;
|
if (!createIfNoneExists) return gambler;
|
||||||
var permaBanned = await db.Gamblers.AnyAsync(g => g.User == user && g.State == GamblerState.PermanentlyBanned, cancellationToken: ct);
|
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
|
NextVipLevelWagerRequirement = Money.VipLevels[0].BaseWagerRequirement
|
||||||
}, ct);
|
}, ct);
|
||||||
await db.SaveChangesAsync(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>
|
/// <summary>
|
||||||
@@ -220,7 +219,7 @@ public static class MoneyExtensions
|
|||||||
{
|
{
|
||||||
await using var db = new ApplicationDbContext();
|
await using var db = new ApplicationDbContext();
|
||||||
db.Attach(gambler);
|
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);
|
p => p.Gambler == gambler && p.PerkType == GamblerPerkType.VipLevel, ct);
|
||||||
return perk;
|
return perk;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user