public async Task <IActionResult> PutAsync([FromBody] QuestionViewModel model)
        {
            if (model == null)
            {
                return(new StatusCodeResult(500));
            }

            QuestionDetailsServiceModel question = await QuestionService.Create(
                model.Text,
                model.QuizId);

            return(new JsonResult(Mapper.Map <QuestionDetailsServiceModel, QuestionViewModel>(question), JsonSettings));
        }
示例#2
0
        public QuestionDetailsServiceModel Details(int id, int userId)
        {
            Question question = this.Database
                                .Questions
                                .Find(id);

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

            question.ViewCount++;

            QuestionDetailsServiceModel model = Enumerable.Repeat(question, 1)
                                                .Select(q => new QuestionDetailsServiceModel
            {
                Id                 = q.Id,
                Title              = q.Title,
                Content            = q.Content,
                DateAdded          = q.DateAdded.ToLocalTime(),
                AuthorUsername     = q.Author.UserName,
                AuthorProfileImage = q.Author.ProfileImage.ConvertImage(),
                Rating             = q.Author.Rating,
                SubCategoryId      = q.SubCategoryId,
                SubCategoryName    = q.SubCategory.Name,
                UpVotes            = q.Votes.Count(v => v.Direction == Direction.Like),
                DownVotes          = q.Votes.Count(v => v.Direction == Direction.Dislike),
                IsOwner            = q.AuthorId == userId,
                IsLocked           = q.IsLocked,
                IsReported         = q.IsReported,
                HasVoted           = q.Votes.Any(v => v.UserId == userId)
            })
                                                .FirstOrDefault();

            this.Database.Save();

            return(model);
        }
        public async Task <IActionResult> PostAsync([FromBody] QuestionViewModel model)
        {
            if (model == null)
            {
                return(new StatusCodeResult(500));
            }

            if (!await QuestionService.Exists(model.Id))
            {
                return(NotFound(new { Error = String.Format("Question ID {0} has not been found", model.Id) }));
            }

            if (!await QuizService.Exists(model.QuizId))
            {
                return(NotFound(new { Error = String.Format("Quiz ID {0} has not been found", model.QuizId) }));
            }

            QuestionDetailsServiceModel question = await QuestionService.Update(
                model.Id,
                model.Text,
                model.QuizId);

            return(new JsonResult(Mapper.Map <QuestionDetailsServiceModel, QuestionViewModel>(question), JsonSettings));
        }