From 8df7f06d606e5e2a33d05179bddcbbf5eaba9376 Mon Sep 17 00:00:00 2001 From: sanchezvem Date: Thu, 14 May 2026 15:11:45 +0100 Subject: [PATCH] Added series gestion --- .../RandomChallenges/PatchProofEndpoint.cs | 5 +++++ .../GetLastRandomChallengeSpec.cs | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 BeReadyBackend/Specifications/RandomChallenges/GetLastRandomChallengeSpec.cs diff --git a/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs b/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs index fa7b18d..5c9e9a6 100644 --- a/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs +++ b/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs @@ -79,6 +79,11 @@ public class PatchProofEndpoint( user.TotalChallenge++; // +1 challenge de fait + UserRandomChallenge? lastChallenge = await userRandomChallengesRepository.SingleOrDefaultAsync(new GetLastRandomChallengeSpec(userId), ct); + + if (lastChallenge is not null) user.Series++; + else user.Series = 1; + await usersRepository.SaveChangesAsync(ct); await userRandomChallengesRepository.SaveChangesAsync(ct); diff --git a/BeReadyBackend/Specifications/RandomChallenges/GetLastRandomChallengeSpec.cs b/BeReadyBackend/Specifications/RandomChallenges/GetLastRandomChallengeSpec.cs new file mode 100644 index 0000000..a4e8dd5 --- /dev/null +++ b/BeReadyBackend/Specifications/RandomChallenges/GetLastRandomChallengeSpec.cs @@ -0,0 +1,19 @@ +using Ardalis.Specification; +using BeReadyBackend.Models; + +namespace BeReadyBackend.Specifications.RandomChallenges; + +public class GetLastRandomChallengeSpec : SingleResultSpecification +{ + public GetLastRandomChallengeSpec(int userId) + { + Query + .Include(x => x.RandomChallenge) + .Where(x => x.RandomChallenge != null + && x.UserId == userId + && x.Proof != null + && x.RandomChallenge.IsAlreadyPast + && x.RandomChallenge.GeneratedAt != null + && DateOnly.FromDateTime(x.RandomChallenge.GeneratedAt.Value) == DateOnly.FromDateTime(DateTime.Now).AddDays(-1)); + } +} \ No newline at end of file