Added series gestion
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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