private int calculateNewInterval(UserFlashcardMemory memory, double newStrength, ReviewCard card) { if (card.InternallLossCount == 0) { return(intervalService.CalculateNewIntervalForWin(memory.LastInterval, newStrength, memory.IntervalCount + 1)); } else { return(intervalService.CalculateNewIntervalForLoss(memory.LastInterval, newStrength, memory.IntervalCount + 1)); } }
private double calculateNewStrength(ReviewCard card, UserFlashcardMemory oldMemory, double correctness) { if (card.InternallLossCount == 0) { return(strengthService.CalculateStrengthAfterGoodAnswer((double)oldMemory.Strength, correctness)); } else { return(strengthService.CalculateStrengthAfterWinningBadAnswer((double)oldMemory.Strength, card.InternallLossCount)); } }
public ReviewCard AddCardBasedOnMemory(UserFlashcardMemory memory, long reviewID) { var card = new ReviewCard() { ReviewID = reviewID, FlashcardID = memory.FlashcardID, InternallLossCount = 0 }; Add(card); return(card); }