Added series gestion
This commit is contained in:
@@ -79,6 +79,11 @@ public class PatchProofEndpoint(
|
|||||||
|
|
||||||
user.TotalChallenge++; // +1 challenge de fait
|
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 usersRepository.SaveChangesAsync(ct);
|
||||||
await userRandomChallengesRepository.SaveChangesAsync(ct);
|
await userRandomChallengesRepository.SaveChangesAsync(ct);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using Ardalis.Specification;
|
||||||
|
using BeReadyBackend.Models;
|
||||||
|
|
||||||
|
namespace BeReadyBackend.Specifications.RandomChallenges;
|
||||||
|
|
||||||
|
public class GetLastRandomChallengeSpec : SingleResultSpecification<UserRandomChallenge>
|
||||||
|
{
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user