private async Task <Word> GetWordByFlashcardWord(FlashcardWord flashcardWord)
        {
            var query = new StoreIndexQuery <string>
            {
                Storename  = DbConstants.StoreName,
                IndexName  = DbConstants.Chinese,
                QueryValue = flashcardWord.Chinese
            };

            return(await DbManager.GetRecordByIndex <string, Word>(query));
        }
        public async Task MoveFlashcard(FlashcardWord flashcardWord, int group)
        {
            StoreRecord <FlashcardWord> record;

            flashcardWord.Day           = group;
            flashcardWord.LastTrainDate = DateTime.Now.Ticks;
            record = new StoreRecord <FlashcardWord>
            {
                Storename = DbConstants.FlashcardsStoreName,
                Data      = flashcardWord
            };

            await DbManager.UpdateRecord(record);
        }
        private async Task <Word> GetRandomWordByGroup(int group)
        {
            var query = new StoreIndexQuery <int>
            {
                Storename  = DbConstants.FlashcardsStoreName,
                IndexName  = DbConstants.Day,
                QueryValue = group
            };

            var flashcardWords = await DbManager.GetAllRecordsByIndex <int, FlashcardWord>(query);

            FlashcardWord flashcardWord = flashcardWords[rand.Next(flashcardWords.Count)];

            return(await GetWordByFlashcardWord(flashcardWord));
        }
        public async Task <string> NextTrainDate(Word word)
        {
            FlashcardWord flashcardWord = await GetFlashcardWordByWord(word);

            DateTime lastTrainDate = new DateTime(flashcardWord.LastTrainDate);
            TimeSpan groupDays     = new TimeSpan(flashcardWord.Day, 0, 0, 0);
            DateTime nextTrainDate = lastTrainDate.Add(groupDays);

            if (nextTrainDate > DateTime.Now)
            {
                return(lastTrainDate.Add(groupDays).ToLongDateString());
            }
            else
            {
                return(ContentConstants.MessageWordCanTrain);
            }
        }