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)); }
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)); }