public async Task <ActionReponseModel> Handle(UpdateFlashcardProgressC request, CancellationToken cancellationToken) { if (request.FlashcardProgress == FlashcardProgress.UnDefined) { return(new ActionReponseModel(false, "Undefined FlashcardProgress Enum")); } var flashcardProgressModel = await _flashcardProgressRepo.Get(request.FlashcardProgressId); if (flashcardProgressModel == null) { return(new ActionReponseModel(false, "Cannot find flashcard progress model")); } var calculatePracticeDateQ = new CalculatePracticeDateQ(flashcardProgressModel.CorrectInRow, request.FlashcardProgress); flashcardProgressModel.PracticeDate = await _mediator.Send(calculatePracticeDateQ); switch (request.FlashcardProgress) { case FlashcardProgress.DontKnow: flashcardProgressModel.CorrectInRow = flashcardProgressModel.CorrectInRow > 2 ? flashcardProgressModel.CorrectInRow - 2 : 0; break; case FlashcardProgress.Know: flashcardProgressModel.CorrectInRow++; break; } await _flashcardProgressRepo.Update(flashcardProgressModel); _mediator.Send(new IncrementStatsUserC(request.UserId)); return(new ActionReponseModel(true)); }
public async Task <FlashcardPracticeMixedGetModel> Handle(GetRandomExpiredForMixedQ request, CancellationToken cancellationToken) { var choosenFlashcard = await _mediator.Send(new GetRandomExpiredForChooseQ(request.UserId)); if (choosenFlashcard == null) { return(null); } var choosenFlashcardDb = await _flashcardProgressRepo.Get(choosenFlashcard.FlashcardProgressId); return(new FlashcardPracticeMixedGetModel() { FlashcardProgressId = choosenFlashcard.FlashcardProgressId, Front = choosenFlashcard.Front, AnsA = choosenFlashcard.AnsA, AnsB = choosenFlashcard.AnsB, AnsC = choosenFlashcard.AnsC, CorrectAns = choosenFlashcard.CorrectAns, Back = choosenFlashcard.CorrectAns == 1 ? choosenFlashcard.AnsA : choosenFlashcard.CorrectAns == 2 ? choosenFlashcard.AnsB : choosenFlashcard.AnsC, CorrectAnsInRow = choosenFlashcardDb.CorrectInRow, PracticeDirection = choosenFlashcardDb.PracticeDirection }); }