Esempio n. 1
0
        public IHttpActionResult EditWord(WordsFullModel wordsModel)
        {
            if (wordsModel != null && wordsModel.Words.Any())
            {
                var word = wordsModel.Words.First();

                var enRuWord = new EnRuWord
                {
                    RussianWord = new RussianWord {
                        RuWord = word.Russian
                    },
                    Example         = word.Example,
                    Id              = word.Id,
                    FailAnswerCount = word.FailAnswerCount,
                    WordLevel       = word.Level,
                    AnswerCount     = word.AnswerCount
                };

                _repositoryFactory.EnRuWordsRepository.EditEnRuWord(enRuWord, wordsModel.UserId);

                return(Ok());
            }

            return(NotFound());
        }
Esempio n. 2
0
        private EnRuWord LevelUp(EnRuWord word, int maxLevel)
        {
            if (word.WordLevel < maxLevel)
            {
                _repositoryFactory.EnRuWordsRepository.ChangeWordLevel(word.Id, 1);
            }
            else
            {
                _repositoryFactory.EnRuWordsRepository.ChangeWordLevel(word.Id, 0);
            }

            return(word);
        }
Esempio n. 3
0
        public EnRuWord AddTranslate(
            string engWord,
            string ruWord,
            string example,
            int userId,
            DateTime?updateDate = null,
            int level           = 0,
            int answerCount     = 0,
            int failAnswerCount = 1)
        {
            int engId = AddEngWord(engWord);
            int ruId  = AddRusWord(ruWord);

            var enRuWordFromDb = _context.EnRuWords
                                 .FirstOrDefault(r => r.EnglishWord.EnWord == engWord && r.UserId == userId);

            if (enRuWordFromDb != null)
            {
                enRuWordFromDb.RussianWordId   = ruId;
                enRuWordFromDb.WordLevel       = level;
                enRuWordFromDb.Example         = example ?? string.Empty;
                enRuWordFromDb.UpdateDate      = updateDate ?? new DateTime(1990, 5, 5);
                enRuWordFromDb.AnswerCount     = answerCount;
                enRuWordFromDb.FailAnswerCount = failAnswerCount;
                _context.SaveChanges();

                return(enRuWordFromDb);
            }

            var enRuWord = new EnRuWord
            {
                RussianWordId   = ruId,
                EnglishWordId   = engId,
                Example         = example ?? string.Empty,
                UserId          = userId,
                WordLevel       = level,
                UpdateDate      = updateDate ?? new DateTime(1990, 5, 5),
                AnswerCount     = answerCount,
                FailAnswerCount = failAnswerCount
            };

            _context.EnRuWords.Add(enRuWord);
            _context.SaveChanges();

            return(enRuWord);
        }
Esempio n. 4
0
        public void EditEnRuWord(EnRuWord updateEnRuWord, int userId)
        {
            var enRuWord = _context.EnRuWords.FirstOrDefault(r => r.Id == updateEnRuWord.Id);

            if (enRuWord == null)
            {
                return;
            }

            int ruId = AddRusWord(updateEnRuWord.RussianWord.RuWord);

            enRuWord.RussianWordId   = ruId;
            enRuWord.Example         = updateEnRuWord.Example;
            enRuWord.UpdateDate      = DateTime.Now;
            enRuWord.WordLevel       = updateEnRuWord.WordLevel;
            enRuWord.FailAnswerCount = updateEnRuWord.FailAnswerCount;
            enRuWord.AnswerCount     = updateEnRuWord.AnswerCount;

            _context.SaveChanges();
        }
Esempio n. 5
0
        public EnRuWord AddTranslate(SimpleWordModel wordModel)
        {
            var engWord = wordModel.English;
            var ruWord  = wordModel.Russian;
            var engId   = AddEngWord(engWord);
            var ruId    = AddRusWord(ruWord);

            var enRuWordFromDb = _context.EnRuWords
                                 .FirstOrDefault(
                r => r.EnglishWord.EnWord == engWord && r.UserId == wordModel.UserId);

            if (enRuWordFromDb != null)
            {
                enRuWordFromDb.RussianWordId   = ruId;
                enRuWordFromDb.WordLevel       = wordModel.Level;
                enRuWordFromDb.Example         = wordModel.Example ?? string.Empty;
                enRuWordFromDb.UpdateDate      = wordModel.UpdateDate ?? new DateTime(1990, 5, 5);
                enRuWordFromDb.AnswerCount     = wordModel.AnswerCount;
                enRuWordFromDb.FailAnswerCount = wordModel.FailAnswerCount;
                _context.SaveChanges();

                return(enRuWordFromDb);
            }

            var enRuWord = new EnRuWord
            {
                RussianWordId   = ruId,
                EnglishWordId   = engId,
                Example         = wordModel.Example ?? string.Empty,
                UserId          = wordModel.UserId,
                WordLevel       = wordModel.Level,
                UpdateDate      = wordModel.UpdateDate ?? new DateTime(1990, 5, 5),
                AnswerCount     = wordModel.AnswerCount,
                FailAnswerCount = wordModel.FailAnswerCount
            };

            _context.EnRuWords.Add(enRuWord);
            _context.SaveChanges();

            return(enRuWord);
        }
Esempio n. 6
0
        public EnRuWord SetWordLevel(int wordId, bool isRight, TestType testType)
        {
            EnRuWord word = _repositoryFactory.EnRuWordsRepository.AllEnRuWords()
                            .FirstOrDefault(r => r.Id == wordId);

            if (word == null)
            {
                return(null);
            }

            if (isRight)
            {
                switch (testType)
                {
                case TestType.EnRuTest:
                    word = LevelUp(word, EnRuMaxLevel);
                    break;

                case TestType.RuEnTest:
                    word = LevelUp(word, RuEnMaxLevel);
                    break;

                case TestType.SpellingWithHelpTest:
                    word = LevelUp(word, SpelWithHelpMaxLevel);
                    break;

                case TestType.SpellingTest:
                    word = LevelUp(word, SpelMaxLevel);
                    break;
                }
            }
            else
            {
                _repositoryFactory.EnRuWordsRepository.ChangeWordLevel(word.Id, -1);
            }
            return(word);
        }