Example #1
0
        public bool AddNewReviewCardIfAble()
        {
            if (sessionService.UserInfo.TrainingInfo.Cards.Count >= 5)
            {
                return(false);
            }

            var card = unit.TrainingRepository.GetTrainableFlashcards(sessionService.UserID, sessionService.LanguageID, 1).FirstOrDefault();

            if (card == null)
            {
                return(false);
            }

            var trainingCard = new TrainingCard()
            {
                FlashcardID = card.ID,
                TrainingID  = sessionService.UserInfo.TrainingInfo.TrainingID
            };

            unit.TrainingCardRepository.Add(trainingCard);
            unit.SaveChanges();
            sessionService.UserInfo.TrainingInfo.AddCard(trainingCard, sessionService.LanguageID);
            return(true);
        }
Example #2
0
        public double AcceptAnswer(TrainingCard trainingFlashcard, FlashcardAnswer answer)
        {
            var correctness = CalculateCorrectnessOfAnswer(answer);

            unit.UserFlashcardMemoryRepository.AddBasedOnTraining(trainingFlashcard, (decimal)(correctness * correctness));
            unit.TrainingCardRepository.Remove(trainingFlashcard);
            unit.SaveChanges();

            sessionService.UserInfo.TrainingInfo.Cards.RemoveAt(0);
            return(correctness);
        }
Example #3
0
        public void DeclineAnswer(TrainingCard trainingFlashcard)
        {
            trainingFlashcard.InternalLossCount++;

            var first = sessionService.UserInfo.TrainingInfo.Cards[0];

            first.InternalLossCount++;
            sessionService.UserInfo.TrainingInfo.Cards.RemoveAt(0);
            sessionService.UserInfo.TrainingInfo.Cards.Add(first);

            unit.SaveChanges();
        }
 public void AddBasedOnTraining(TrainingCard card, decimal correctness)
 {
     Add(new UserFlashcardMemory()
     {
         FlashcardID   = card.FlashcardID,
         IntervalCount = 1,
         LanguageID    = card.TrainingSession.LanguageID,
         LastInterval  = 1,
         ReviewDate    = DateTime.Now.AddDays(1),
         Strength      = (0.5m / (card.InternalLossCount + 1m)) * correctness,
         UserID        = card.TrainingSession.UserID
     });
 }
Example #5
0
 public TrainingCardInfo(TrainingCard card)
 {
     FlashcardID       = card.FlashcardID;
     LanguageID        = card.TrainingSession.LanguageID;
     InternalLossCount = card.InternalLossCount;
 }
Example #6
0
 public TrainingCardInfo(TrainingCard card, int languageID)
 {
     FlashcardID       = card.FlashcardID;
     LanguageID        = languageID;
     InternalLossCount = card.InternalLossCount;
 }
Example #7
0
 public TrainingQuestion(TrainingCard card, int languageID) : base(card.Flashcard, languageID)
 {
     TrainingID = card.TrainingID;
 }
Example #8
0
 public void AddCard(TrainingCard card, int languageID)
 {
     Cards.Add(new TrainingCardInfo(card, languageID));
 }