public async Task <ActionResult <AnswerResponse> > PostTextAnswer(DTO.Answer <string> input) { var question = await _db.Questions.FindAsync(input.QuestionId); if (question == null) { return(NotFound(new ErrorModel { Reason = "Question with the provided QuestionId does not exist", Error = "Question Not Found" })); } var answer = new Data.Answer { AnswerContent = input.AnswerContent, QuestionId = input.QuestionId, IsAnswerCorrect = input.IsAnswerCorrect, }; _db.Answers.Add(answer); question.QuestionAnswers = new List <QuestionAnswer>(); question.QuestionAnswers.Add(new QuestionAnswer { Question = question, Answer = answer }); var result = answer.MapAnswerResponse(); await _db.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), new { Id = result.Id }, result)); }
protected void ListViewAnswers_ItemDataBound(object sender, ListViewItemEventArgs e) { ListView listViewComments = (ListView)e.Item.FindControl("RepeaterComment"); Data.Answer answer = ((Data.Answer)e.Item.DataItem); listViewComments.DataSource = answer.Comments; HyperLink answerEditLink = (HyperLink)e.Item.FindControl("HyperLinkAnswerEdit"); if (answer.UserId == User.Identity.GetUserId <int>()) { answerEditLink.Visible = true; } if (ViewState["RepeaterId"] != null && e.Item.ID == (string)ViewState["RepeaterId"]) { Panel reply = (Panel)e.Item.FindControl("CommentPanel"); reply.Visible = true; ViewState.Add("CurrentAnswerId", answer.Id); RegularExpressionValidator regExpValidator = (RegularExpressionValidator)e.Item.FindControl("RegularExpressionValidatorComment"); TextBox tb = (TextBox)e.Item.FindControl("TextBoxComment"); tb.Text = (string)ViewState["CommentText"]; regExpValidator.ControlToValidate = tb.ID; regExpValidator.Validate(); listViewComments.DataBind(); } else { listViewComments.DataBind(); } }
public static DTO.AnswerResponse MapAnswerResponse(this Data.Answer answer) => new DTO.AnswerResponse { Id = answer.Id, AnswerContent = answer.AnswerContent, QuestionId = answer.QuestionId, Question = answer.QuestionAnswers?.Select(s => new DTO.Question <string> { Id = s.QuestionId, QuestionContent = s.Question.QuestionContent, QuestionPoints = s.Question.QuestionPoints }).FirstOrDefault() };
public Data.Answer GetAnswer(UserAnswer myAnswer, ApplicationDbContext context) { Data.Answer answer; answer = context.Answers.FirstOrDefault(x => x.QuestionId == myAnswer.QuestionId && x.Title == myAnswer.Answer); if (answer == null) { answer = new Data.Answer { QuestionId = myAnswer.QuestionId, Title = myAnswer.Answer }; context.Answers.Add(answer); context.SaveChanges(); } return(answer); }
public async Task <ActionResult <AnswerResponse> > PostImageAnswer(DTO.Answer <IFormFile> input) { var question = await _db.Questions.FindAsync(input.QuestionId); if (question == null) { return(NotFound(new ErrorModel { Reason = "Question with the provided QuestionId does not exist", Error = "Question Not Found" })); } var imageResponse = await _imageUploader.DataLoaderAsync(input.AnswerContent, "answers"); if (!imageResponse.IsSuccess) { return(BadRequest(new ErrorModel { Error = imageResponse.Data, Reason = imageResponse.Message })); } var answer = new Data.Answer { AnswerContent = imageResponse.Data, QuestionId = input.QuestionId, IsAnswerCorrect = input.IsAnswerCorrect, }; _db.Answers.Add(answer); question.QuestionAnswers = new List <QuestionAnswer>(); question.QuestionAnswers.Add(new QuestionAnswer { Question = question, Answer = answer }); var result = answer.MapAnswerResponse(); await _db.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), new { Id = result.Id }, result)); }
public bool Add(Data.ApplicationDbContext context) { if (context.Answers.Any(x => x.QuestionId == this.ParentId && x.Title == this.Title)) { return(false); } try { var answer = new Data.Answer { Title = this.Title, QuestionId = this.ParentId }; context.Answers.Add(answer); context.SaveChanges(); return(true); } catch { return(false); } }