示例#1
0
        public WordsFullModel CreateWordsCloudModel(
            string userName,
            IEnumerable <EnRuWord> enRuWords,
            int totalWordsCount)
        {
            var wordsCloudModel = new WordsFullModel
            {
                UserName = userName
            };

            var words = new List <WordModelModel>();

            foreach (var word in enRuWords)
            {
                var viewModel = new WordModelModel
                {
                    English         = word.EnglishWord.EnWord,
                    Russian         = word.RussianWord.RuWord,
                    Level           = word.WordLevel,
                    Example         = word.Example,
                    UpdateDate      = word.UpdateDate,
                    AnswerCount     = word.AnswerCount,
                    FailAnswerCount = word.FailAnswerCount,
                    Id = word.Id
                };

                words.Add(viewModel);
            }

            wordsCloudModel.Words      = words;
            wordsCloudModel.TotalWords = totalWordsCount == 0 ?GetWordCount(userName) : totalWordsCount;

            return(wordsCloudModel);
        }
示例#2
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());
        }
示例#3
0
        public IHttpActionResult DeleteWord(WordsFullModel wordsModel)
        {
            if (wordsModel != null && wordsModel.Words.Any())
            {
                var userId = _userHelper.GetUserId(wordsModel.UserName);
                _repositoryFactory.EnRuWordsRepository.DeleteEnRuWord(wordsModel.Words.First().English, userId);

                return(Ok());
            }

            return(NotFound());
        }
示例#4
0
        public IHttpActionResult AddWords([FromBody] WordsFullModel wordsModel)
        {
            try
            {
                if (wordsModel == null)
                {
                    throw new ArgumentException("words model is null");
                }

                var userId = _userHelper.GetUserId(wordsModel.UserName);

                foreach (var modelItem in wordsModel.Words)
                {
                    _repositoryFactory.EnRuWordsRepository
                    .AddTranslate(
                        modelItem.English,
                        modelItem.Russian,
                        modelItem.Example,
                        userId,
                        modelItem.UpdateDate,
                        modelItem.Level,
                        modelItem.AnswerCount,
                        modelItem.FailAnswerCount);
                }
            }
            catch (Exception ex)
            {
                var response = new ResponseModel
                {
                    IsError      = true,
                    ErrorMessage = ex.Message
                };

                return(Json(response));
            }

            var okResponse = new ResponseModel
            {
                IsError         = false,
                ErrorMessage    = string.Empty,
                WordsCloudModel = new WordsFullModel
                {
                    TotalWords = _userHelper.GetWordCount(wordsModel.UserName)
                }
            };

            return(Json(okResponse));
        }
示例#5
0
        public ActionResult Index(string wordsJson)
        {
            try
            {
                WordsFullModel wordsModel = JsonConvert.DeserializeObject <WordsFullModel>(wordsJson);

                if (wordsModel == null)
                {
                    throw new Exception("Invalid JSON");
                }

                if (string.IsNullOrEmpty(wordsModel.UserName))
                {
                    throw new Exception("Invalid JSON (invalid user name)");
                }

                var currentUser = HttpContext.User.Identity.Name;

                if (currentUser.ToLower() != wordsModel.UserName.ToLower())
                {
                    throw new Exception("Words should be for current user");
                }

                var userId = _userHelper.GetUserId(wordsModel.UserName);

                foreach (var modelItem in wordsModel.Words)
                {
                    _repositoryFactory.EnRuWordsRepository
                    .AddTranslate(
                        modelItem.English,
                        modelItem.Russian,
                        modelItem.Example,
                        userId,
                        modelItem.UpdateDate,
                        modelItem.Level,
                        modelItem.AnswerCount,
                        modelItem.FailAnswerCount);
                }
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message;
                return(View());
            }

            ViewBag.Success = "Uploaded...";
            return(View());
        }