Example #1
0
        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 TestD()
        {
            var serviceProvider = new ServiceCollection()
                                  .AddMediatR(typeof(MediatREntryPoint).Assembly)
                                  .BuildServiceProvider();

            var mediator = serviceProvider.GetService <IMediator>();

            var calculatePracticeDateQ = new CalculatePracticeDateQ(-1, FlashcardProgress.Know);

            await Assert.ThrowsAsync <NotSupportedException>(async() => await mediator.Send(calculatePracticeDateQ));
        }
        public async Task TestC()
        {
            var serviceProvider = new ServiceCollection()
                                  .AddMediatR(typeof(MediatREntryPoint).Assembly)
                                  .BuildServiceProvider();

            var mediator = serviceProvider.GetService <IMediator>();

            var calculatePracticeDateQ = new CalculatePracticeDateQ(2, FlashcardProgress.Know);

            Assert.Equal(DateTime.Now.Date.AddDays(3), await mediator.Send(calculatePracticeDateQ));
        }