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); }
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); }
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 }); }
public TrainingCardInfo(TrainingCard card) { FlashcardID = card.FlashcardID; LanguageID = card.TrainingSession.LanguageID; InternalLossCount = card.InternalLossCount; }
public TrainingCardInfo(TrainingCard card, int languageID) { FlashcardID = card.FlashcardID; LanguageID = languageID; InternalLossCount = card.InternalLossCount; }
public TrainingQuestion(TrainingCard card, int languageID) : base(card.Flashcard, languageID) { TrainingID = card.TrainingID; }
public void AddCard(TrainingCard card, int languageID) { Cards.Add(new TrainingCardInfo(card, languageID)); }