public async Task <ActionResult> Create(QuestionCreateViewModel model, FormCollection formCollection) { List <AddAnswerRequest> answers = new List <AddAnswerRequest>(); for (int i = 4; i < formCollection.Count; i += 2) { AddAnswerRequest addAnswerRequest = new AddAnswerRequest() { Title = formCollection[i], IsCorrectAnswer = Convert.ToBoolean(formCollection[i + 1]) }; answers.Add(addAnswerRequest); } CreateQuestionRequest createQuestionRequest = new CreateQuestionRequest() { Title = model.Title, Explanation = model.Explanation, ThemeId = model.ThemeId, Answers = answers }; var question = await _questionAdminService.CreateQuestionAsync(createQuestionRequest); if (model.Image != null && model.Image.ContentLength > 0) { var extension = AttachmentsUtil.GetExtentionFromMimeType(model.Image.ContentType); var content = GetAttachmentContent(model.Image); await _questionAdminService.UploadAttachmentAsync(new UploadQuestionAttachmentRequest(question.Id, content, extension)); } return(RedirectToAction("Index", new { themeId = model.ThemeId })); }
public AnswerResponse AddAnswer([FromBody] AddAnswerRequest request) { var userId = User.Claims .Where <Claim>(c => c.Type == ClaimTypes.NameIdentifier) .Select(s => s.Value).First(); if (userId == null) { return(new AnswerResponse { Data = null, Message = "اطلاعات کاربری یافت نشد" }); } var answer = new Answer { CreateTime = DateTime.Now, Description = request.Description, QuestionId = request.QuestionId, UserId = userId }; try { context.Answers.Add(answer); context.SaveChanges(); } catch (Exception e) { return(new AnswerResponse { Data = null, Message = "در ثبت جواب مشکلی پیش آمد" }); } return(new AnswerResponse { Data = null, Message = "جواب با موفقیت ثبت شد" }); }
public IEnumerable <Answer> AddAnswer(AddAnswerRequest model) { var paramForAddAnswer = new DynamicParameters(); paramForAddAnswer.Add("@AnswerContent", model.AnswerContent); paramForAddAnswer.Add("@UserId", model.UserId); paramForAddAnswer.Add("@QuestionId", model.QuestionId); paramForAddAnswer.Add("@CreatedDate", model.CreatedDate); var answerId = _dbConnection.Query <int>(@"insert into Answer(AnswerContent, UserId, QuestionId, CreatedDate) values(@AnswerContent,@UserId,@QuestionId,@CreatedDate); SELECT CAST(SCOPE_IDENTITY() as int)", paramForAddAnswer).Single(); var paramForGetAnswers = new DynamicParameters(); paramForGetAnswers.Add("@QuestionId", model.QuestionId); var answers = _dbConnection.Query <Answer>(@"select a.AnswerId, a.AnswerContent, a.UserId as UserAnswerId, a.CreatedDate as AnswerDate, u.Avatar, u.FirstName + ' ' + u.LastName as UserFullName, (select count(AnswerId) from Vote as v where v.AnswerId=a.AnswerId) as TotalVote from Answer as a join [User] as u on a.UserId=u.UserId where QuestionId = @QuestionId order by AnswerDate", paramForGetAnswers); return(answers); }
public void AddAnswer(AddAnswerRequest request) { GeneralHelpers.ThrowIfNull(request.Answer); answerRepo.AddAnswer(new Answer { Description = request.Answer, QuestionId = request.QuestionId }); }
public IActionResult AddAnswer(AddAnswerRequest model) { string tokenString = Request.Headers["Authorization"]; int currentUserId = JwtAthentication.GetCurrentUserId(tokenString); model.UserId = currentUserId; var answers = _answerService.AddAnswer(model); answers.ForEach(x => x.AvatarUrl = Url.Content(string.Format("~/Images/UserAvatars/{0}", x.Avatar))); return(Ok(new { answers = answers })); }
public async Task AddAnswerAsync(AddAnswerRequest request) { var questionAnswer = new QuestionAnswer { QuestionId = request.QuestionId, Answer = new Answer { Id = Guid.NewGuid(), Title = request.Title, IsCorrectAnswer = request.IsCorrectAnswer, Created = DateTime.UtcNow } }; UnitOfWork.QuestionAnswerRepository.Add(questionAnswer); await UnitOfWork.SaveChangesAsync(); }
public async Task EditQuestionAsync(EditQuestionRequest model) { var question = await UnitOfWork.QuestionRepository.Query(x => x.Id == model.Id) .FirstOrDefaultAsync(); if (question == null) { throw new ArgumentNullException(); } question.Title = model.Title; question.Explanation = model.Explanation; UnitOfWork.QuestionRepository.Update(question); await UnitOfWork.SaveChangesAsync(); var answers = await _answerAdminService.GetAllAnswersByQuestionIdAsync(question.Id); foreach (var answer in model.Answers) { if (answer.Id == Guid.Empty) // Add new answers { AddAnswerRequest addAnswerRequest = new AddAnswerRequest() { Title = answer.Title, IsCorrectAnswer = answer.IsCorrectAnswer, QuestionId = question.Id }; await _answerAdminService.AddAnswerAsync(addAnswerRequest); } else // Update answers { answers.RemoveAll(x => x.Id == answer.Id); await _answerAdminService.UpdateAnswerAsync(answer); } } foreach (var answer in answers) // Delete answers { await _answerAdminService.DeleteAnswerAsync(answer.Id); } }
public async Task AddAsync(AddAnswerRequest request) => await answersRepository.AddAsync(mapper.Map <Answer>(request));
public List <Answer> AddAnswer(AddAnswerRequest model) { return(_answerRepository.AddAnswer(model).ToList()); }
public ActionResult AddAnswer([FromForm] AddAnswerRequest request) { answerService.AddAnswer(request); return(Ok()); }
public async Task AddAnswer([FromBody] AddAnswerRequest request) => await answersService.AddAsync(request);
public BaseResult AddAnswer(AddAnswerRequest request) { return(_retroLogic.AddAnswer(request.Answer)); }