public async Task <AnswerDTO> DeleteAnswerFromQuestion(int testId, int questionId, int answerId) { if (testId <= 0) { throw new ArgumentException("Incorrect test id."); } if (questionId <= 0) { throw new ArgumentException("Incorrect question id."); } if (answerId <= 0) { throw new ArgumentException("Incorrect answer id."); } Answer returnedAnswer = _database.Answers.Delete(answerId); await _database.SaveAsync(); AnswerDTO returnedAnswerDTO = _mapper.Map <Answer, AnswerDTO>(returnedAnswer); return(returnedAnswerDTO); }
/// <summary> /// Un Down Vote /// </summary> /// <param name="voterId"></param> /// <param name="answerId"></param> /// <returns></returns> public AnswerDTO UnDownVote(Guid voterId, Guid answerId) { try { AnswerDTO answerDTO = new AnswerDTO(); Answer answerFound = db.Answers.Where(x => x.Id == answerId).FirstOrDefault(); Vote voteColumn = db.Voters.Where(x => x.AnswerId == answerId && x.UserId == voterId).FirstOrDefault(); if (voteColumn == null) { } else { if (voteColumn.Status == (int)EntityConstants.VOTE.Downvote) { db.Voters.Remove(voteColumn); answerFound.DownvoteCount--; answerDTO = AnswerMapper.ToDTO(answerFound); answerDTO.Upvoted = false; answerDTO.Downvoted = false; db.SaveChanges(); return(answerDTO); } else if (voteColumn.Status == (int)EntityConstants.VOTE.Upvote) { } } db.SaveChanges(); answerDTO = AnswerMapper.ToDTO(answerFound); answerDTO.Upvoted = false; answerDTO.Downvoted = false; return(answerDTO); } catch { return(null); } }
public void SaveAnswer() { // Arrange Mapper.Initialize(x => { x.AddProfile <MappingProfileModel>(); x.AddProfile <MappingProfileDTO>(); }); RatingDemoTestEntities ratingDemoTestEntities = new RatingDemoTestEntities(); IUnitOfWork unitOfWork = new UnitOfWork(ratingDemoTestEntities); IBusiness Business = new Business.Concrete.Business(unitOfWork); // Act AnswerDTO answerDTO = new AnswerDTO { QuestionID = 1, Comment = "Comment", Point = 4, UserID = 1 }; bool result = Business.SaveAnswer(answerDTO); // Assert Assert.IsTrue(result); }
public bool Update(AnswerDTO answerDto) { Answer newDomain = _answerFactory.Create(answerDTO: answerDto); Answer domain = _answerRepository.Find(id: answerDto.Id); if (domain == null || !ValidateDomainModel(u: newDomain) || !ForumTopicIdCheck(id: newDomain.ForumTopicId, forumTopicRepository: _forumTopicRepository)) { return(false); } domain.Title = newDomain.Title; domain.Text = newDomain.Text; domain.Author = newDomain.Author; domain.Created = newDomain.Created; domain.ForumTopicId = newDomain.ForumTopicId; _answerRepository.Update(entity: domain); _answerRepository.SaveChanges(); return(true); }
public HttpResponseMessage GetAnswerForAssignement(int id) { try { Answers answer = this._homeworkManagement.GetAnswerForAssignement(id); if (answer != null) { AnswerDTO dto1 = new AnswerDTO(); dto1.AnswerId = answer.AnswerId; dto1.AnswerType = answer.AnswerType; dto1.AnswerValue = answer.AnswerValue; return(Request.CreateResponse <AnswerDTO>(HttpStatusCode.OK, dto1)); } else { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Resource Not Found")); } } catch (Exception) { // Log exception code goes here return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error occured while executing method.")); } }
public async Task <IHttpActionResult> AddAnswerToQuestion(int testId, int questionId, AnswerModel answerModel) { if (testId <= 0) { return(BadRequest("Incorrect test id.")); } if (questionId <= 0) { return(BadRequest("Incorrect question id.")); } if (answerModel == null) { return(BadRequest("Answer must not be null.")); } try { answerModel.QuestionId = questionId; AnswerDTO answerDTO = _mapper.Map <AnswerModel, AnswerDTO>(answerModel); AnswerDTO createdanswer = await _testService.AddAnswerToQuestion(answerDTO); AnswerModel returnedTest = _mapper.Map <AnswerDTO, AnswerModel>(createdanswer); return(Ok(returnedTest)); } catch (EntityNotFoundException) { return(NotFound()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> PutAnswer(long id, AnswerDTO AnswerDTO) { if (id != AnswerDTO.Id) { return(BadRequest()); } var Answer = await _context.Answer.FindAsync(id); if (Answer == null) { return(NotFound()); } Answer = UpdatePutableFields(Answer, AnswerDTO); _context.Entry(Answer).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AnswerExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public bool CreateAttemptResult(ConcreteAttemptBusinessModel concreteAttempt) { StudentDataAccess student = new StudentDataAccess(); int answersCount = 0; student.DeleteAttemptQuestionAnswerByAttemptId(concreteAttempt.AttemptId); foreach (var q in concreteAttempt.Questions) { foreach (var a in q.Answers) { answersCount++; if (a.Id.HasValue) { student.AddAttemptQuestionAnswer(concreteAttempt.AttemptId, q.Id, a.Id.Value); } else { QuestionTypeAnswersDTO questionType = student.GetQuestionTypeIdCorrectAnswerByQuestionId(q.Id); StringAnswerConverter convert = new StringAnswerConverter(); if (convert.CheckCorrectAnswer(a.Value, questionType.Value, questionType.TypeId)) { student.AddAttemptQuestionAnswer(concreteAttempt.AttemptId, q.Id, questionType.Id); } else { AnswerDTO answer = new AnswerDTO(0, q.Id, a.Value, false); int answerId = student.AddAnswer(answer); student.AddAttemptQuestionAnswer(concreteAttempt.AttemptId, q.Id, answerId); } } } } int answersQty = student.GetQtyOfAnswersInAttempt(concreteAttempt.AttemptId); return(answersQty == answersCount); }
public async Task <JsonResult> AddAnswer(AnswerViewModel model) { if (ModelState.IsValid) { var answerDto = new AnswerDTO { Name = model.Name, QuestionId = model.QuestionId, Right = model.Right }; Details details = await TestService.AddAnswer(answerDto); if (details.Succeeded) { //return RedirectToAction("AddAnswer", "Test"); //return View(model); return(Json(model, JsonRequestBehavior.AllowGet)); } else { ModelState.AddModelError(details.Property, details.Message); } } //return View(model); return(Json(model, JsonRequestBehavior.AllowGet)); }
public Answers SetEntity(AnswerDTO entity) { return(_mapper.Map <AnswerDTO, Answers>(entity)); }
public void UpdateAnswer(AnswerDTO answer) { _uow.Answers.Update(answer.ToAnswerEntity()); }
public void DeleteAnswer(AnswerDTO answer) { _uow.Answers.Delete(answer.ToAnswerEntity()); }
public async Task UpdateAnswerAsync(AnswerDTO dbAnswer, AnswerDTO answer) { dbAnswer.AnswerMap(answer); Update(Mapping.Mapper.Map <AnswerDTO, Answer>(dbAnswer)); await SaveAsync(); }
protected virtual List <AnswerDTO> ParseAnswers(BBQuestionDTO q) { var correctAnswerId = 0; if (!string.IsNullOrEmpty(q.answer)) { if (q.answers == null && q.answersList == null) { string answerFirstPart = null; if (!string.IsNullOrEmpty(q.answersChoices)) { var dotIndex = q.answersChoices.IndexOf("."); answerFirstPart = q.answersChoices.Substring(0, dotIndex); } double margin = 0; if (q.answerRange != null) { double.TryParse(q.answerRange, out margin); } return(new List <AnswerDTO>() { new AnswerDTO() { text = q.answer, weight = 100, id = 0, margin = margin, question_text = answerFirstPart } }); } else { correctAnswerId = int.Parse(q.answer); } } var ret = new List <AnswerDTO>(); if (q.answersList is JObject) { var answersList = q.answersList as JObject; if (answersList["image"] != null) { var coords = answersList["coord"].ToString(); if (coords.Length < 4) { return(ret); } var image = answersList["image"].ToString(); //var fileData = answersList["imageBinary"].ToString(); string fileDataBase64 = null; var lazyLoadImages = images(); lazyLoadImages.TryGetValue(image, out fileDataBase64); var answerDto = new AnswerDTO() { text = coords, question_text = image, //fileData = Encoding.UTF8.GetString(fileData) }; if (fileDataBase64 != null) { answerDto.fileData = fileDataBase64; } ret.Add(answerDto); return(ret); } // todo: this code is not needed anymore, need to check and remove. It was used for 'fill in multiple blanks' question type which has separate parser now var i = 0; foreach (var answer in answersList) { var dto = ParseFillInBlank(answer.Value, answer.Key, i); ret.Add(dto); i++; } return(ret); // end of code which should be removed } if (q.variableSets is JObject) { var variableSets = q.variableSets as JObject; foreach (var set in variableSets) { double tolerance = 0; double.TryParse(q.tolerance, out tolerance); var quizAnswer = new AnswerDTO() { id = 0, margin = tolerance, question_text = set.Key, text = DecodeFormula(q.formula), weight = 100 }; if (set.Value is JObject) { foreach (var variable in set.Value as JObject) { if (variable.Key.Equals("answer")) { quizAnswer.answer = double.Parse(variable.Value.ToString()); } else { quizAnswer.variables.Add(new VariableDTO() { name = variable.Key, value = variable.Value.ToString() }); } } } ret.Add(quizAnswer); break; } return(ret); } if (q.answers is JObject) { var answersList = q.answers as JObject; var i = 0; if (answersList.Count > 0) { foreach (var answer in answersList) { var rightAnswer = answer.Value != null?answer.Value.ToString() : string.Empty; if (q.choices is JObject) { var currentChoice = (q.choices as JObject)[answer.Key]; if (currentChoice != null) { foreach (var option in currentChoice as JObject) { var answerDto = new AnswerDTO() { id = i++, blank_id = answer.Key, match_id = option.Key, text = option.Value.ToString(), weight = option.Key.Equals(rightAnswer) ? 100 : 0 }; ret.Add(answerDto); } } } } } else if (q.choices is JObject) { foreach (var choice in q.choices as JObject) { foreach (var option in choice.Value as JObject) { var answerDto = new AnswerDTO() { id = i++, blank_id = choice.Key, match_id = option.Key, text = option.Value.ToString() }; ret.Add(answerDto); } } } return(ret); } if (q.answerPhrasesList != null || q.questionWordsList != null) { var i = 0; foreach (var question in q.questionWordsList ?? new string[] { string.Empty }) { foreach (var phrase in q.answerPhrasesList ?? new string[] { string.Empty }) { var answer = string.Format("{0} {1}", question, phrase).Trim(); ret.Add(new AnswerDTO() { text = answer, weight = 100, id = i++ }); } } return(ret); } if (q.answersList is JContainer) { List <string> answers = null; if (q.answers is JContainer) { answers = (q.answers as JContainer).Select(t => t.ToString()).ToList(); } var answersList = q.answersList as JContainer; var i = 0; foreach (var answer in answersList) { int order = 0; string questionText = null, answerText = null, lmsValue = null; //byte[] matchingImage = null; string leftMatchingImageText = string.Empty; string rightMatchingImageText = string.Empty; if (answer is JObject) { foreach (var option in answer as JObject) { questionText = option.Key; answerText = option.Value.ToString(); break; } var propIndex = (answer as JObject).Properties().FirstOrDefault(x => x.Name == "index"); if (propIndex != null) { lmsValue = propIndex.Value.ToString(); int propIndexInt; var isIndexInt = int.TryParse(lmsValue, out propIndexInt); if (isIndexInt) { var leftImage = (answer as JObject).Properties().FirstOrDefault(x => x.Name == "leftImageLink"); if (leftImage != null) { //var lazyLoadImages = images(); //lazyLoadImages.TryGetValue(leftImage.Value.ToString(), out matchingImage); leftMatchingImageText = leftImage.Value.ToString(); } var rightImage = (answer as JObject).Properties().FirstOrDefault(x => x.Name == "rightImageLink"); if (rightImage != null) { //var lazyLoadImages = images(); //lazyLoadImages.TryGetValue(rightImage.Value.ToString(), out matchingImage); rightMatchingImageText = rightImage.Value.ToString(); } } } } else { answerText = answer.ToString(); int.TryParse(answerText, out order); } var answerDto = new AnswerDTO() { id = i, match_id = lmsValue, text = answers != null && answers.Count > i ? answers[i] : answerText, order = order, question_text = questionText, /*weight = i == correctAnswerId ? 100 : 0*/ weight = q.type.Equals("Fill in the blank", StringComparison.OrdinalIgnoreCase) ? 100 : i == correctAnswerId ? 100 : 0 }; if (!string.IsNullOrEmpty(leftMatchingImageText)) { answerDto.leftImageName = leftMatchingImageText; } if (!string.IsNullOrEmpty(rightMatchingImageText)) { answerDto.rightImageName = rightMatchingImageText; } ret.Add(answerDto); i++; } return(ret); } return(new List <AnswerDTO>() { new AnswerDTO() { text = "no answer", weight = 100, id = 0 } }); }
public void Create(AnswerDTO obj) { unitOfWork.Answers.Create(mapper.AnswerDTOToAnswer(obj)); }
//protected class FillInTheBlankAnswer //{ // public string text { get; set; } // public string subType { get; set; } // public bool caseSensitive { get; set; } //} protected override List <AnswerDTO> ParseAnswers(BBQuestionDTO q) { //var ret = new List<AnswerDTO>(); //int i = 0; //var answersList = (JArray)q.answersList; //var items = answersList.ToObject<List<FillInTheBlankAnswer>>(); ////foreach (var answer in items) //{ // var dto = ParseFillInBlankAnswer(items, "don't know", i); // ret.Add(dto); // //i++; //} //return ret; var ret = new List <AnswerDTO>(); int i = 0; foreach (var answer in (JObject)q.answersList) { var dto = ParseFillInBlankAnswer(answer.Value.ToObject <List <string> >(), answer.Key, i); ret.Add(dto); i++; } if (q.variableSets is JObject) { var variableSets = q.variableSets as JObject; foreach (var set in variableSets) { double tolerance = 0; double.TryParse(q.tolerance, out tolerance); var quizAnswer = new AnswerDTO() { id = 0, margin = tolerance, question_text = set.Key, text = DecodeFormula(q.formula), weight = 100 }; if (set.Value is JObject) { foreach (var variable in set.Value as JObject) { if (variable.Key.Equals("answer")) { quizAnswer.answer = double.Parse(variable.Value.ToString()); } else { quizAnswer.variables.Add(new VariableDTO() { name = variable.Key, value = variable.Value.ToString() }); } } } ret.Add(quizAnswer); break; } return(ret); } return(ret); }
public async Task <ActionResult> SetNewAnswer([FromBody] AnswerDTO answerDto) { var answerId = await _answerServices.SetNewAnswer(answerDto); return(Ok(new ResponseItem(answerId))); }
// GET: api/Answers public JsonResult <IEnumerable <AnswerDTO> > GetAnswers() { return(Json(db.Answers.ToList().Select(answer => AnswerDTO.FromEntity(answer)))); }
public long AddAnswer(AnswerDTO Answer) { AnswerDal = new AnswerDAL(); return(AnswerDal.AddAnswer(Answer)); }
public JsonResult <IEnumerable <AnswerDTO> > GetAnswersQuestion(Guid id) { return(Json(db.Answers.Where(x => x.QuestionID == id).ToList().Select(answer => AnswerDTO.FromEntity(answer)))); }
public void RemoveByDTO() { AnswerDTO answerDTO; using (var repo = RepositoryContext.GetRepository()) { var answer = new Answer(); answer.Name = "RemoveByDTO"; repo.Add(answer); repo.SaveChanges(); answer = repo.GetByID<Answer>(answer.ID); Assert.IsNotNull(answer, "删除测试中,准备数据插入失败"); //创建实体给前台使用,其他字段就不一一列举了,关键的是ID,和SysVersion字段 answerDTO = new AnswerDTO() { ID = answer.ID, SysVersion = answer.SysVersion }; } using (var repo = RepositoryContext.GetRepository()) { var entityToDelete = new Answer() { ID = answerDTO.ID, SysVersion = answerDTO.SysVersion }; repo.Remove(entityToDelete); repo.SaveChanges(); var answerResult = repo.GetByID<Answer>(answerDTO.ID); Assert.IsNull(answerResult, "通过ID和SysVersion没有删除成功"); } }
public void Update(AnswerDTO obj) { throw new System.NotImplementedException(); }
public JsonResult UpdateProcess(FormCollection frm) { try { string strID = Convert.ToString(frm["hdupdatestridtxt"]); string strScoreExpect = Convert.ToString(frm["txtScoreExpect"]); string strchoicetype = Convert.ToString(frm["cbochoicetype"]); string strlevel = Convert.ToString(frm["cbolevel"]); string strtrainningid = Convert.ToString(frm["cboHMH"]); string strContent = Convert.ToString(frm["taContent"]); string strusercreate = (string)Session["Username"]; string strNumbAnswer = Convert.ToString(frm["createAnswerhdnumberanswer"]); int intNumbAnswer = int.Parse(strNumbAnswer); List <string> listoldanswerd = new List <string>(); foreach (var key in frm.AllKeys.Where(k => k.StartsWith("HDoldAnswer"))) { string value = Convert.ToString(frm[key]); listoldanswerd.Add(value); } List <AnswerDTO> lcontentAnswer = new List <AnswerDTO>(); foreach (var key in frm.AllKeys.Where(k => k.StartsWith("HDInserttaAnswer"))) { var match = listoldanswerd.FirstOrDefault(stringToCheck => stringToCheck.Contains(key)); if (match == null) { string[] sSplit = key.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries); string _selectorp = "HDInserttaAnswer_" + sSplit[1]; AnswerDTO adto = new AnswerDTO(); adto.AnswerContent = Convert.ToString(frm[_selectorp]); _selectorp = "HDInsertipTrueAnswer_" + sSplit[1]; adto.AnswerCheck = Convert.ToBoolean(frm[_selectorp]); lcontentAnswer.Add(adto); } } List <AnswerDTO> lupdatecontentAnswer = new List <AnswerDTO>(); foreach (var key in frm.AllKeys.Where(k => k.StartsWith("HDUpdateAnswer"))) { string[] sSplit = key.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries); string _selectorp = "HDInserttaAnswer_" + sSplit[1]; AnswerDTO adto = new AnswerDTO(); adto.AnswerContent = Convert.ToString(frm[_selectorp]); _selectorp = "HDInsertipTrueAnswer_" + sSplit[1]; adto.AnswerCheck = Convert.ToBoolean(frm[_selectorp]); adto.AnswerID = Convert.ToString(frm[key]); lupdatecontentAnswer.Add(adto); } List <string> ldeletecontentAnswer = new List <string>(); foreach (var key in frm.AllKeys.Where(k => k.StartsWith("HDDeleteAnswer"))) { ldeletecontentAnswer.Add(Convert.ToString(frm[key])); } bool bolSuccess = new QuestionDAO().Update(strID, strScoreExpect, strNumbAnswer, strchoicetype, strlevel, strtrainningid, strContent, lcontentAnswer, lupdatecontentAnswer, ldeletecontentAnswer); if (bolSuccess == false) { return(Json(new { iserror = true })); } return(Json(new { iserror = false })); } catch (Exception) { return(Json(new { iserror = true })); } }
public static void AnswerMap(this AnswerDTO dbAnswer, AnswerDTO answer) { dbAnswer.AnswerValue = answer.AnswerValue; dbAnswer.QuestionID = answer.QuestionID; }
public bool Update(AnswerDTO question) { bool b1 = ur.Update(Mapper.Map <AnswerEntity>(question)); return(b1); }
public Answer AnswerDTOToAnswer(AnswerDTO answerDTO) { return(unitOfWork.Answers.GetAll().ToList().Find(x => x.id == answerDTO.id)); }
public async Task <string> SetNewAnswer(AnswerDTO answerDTO) { var newAnswer = await AnswerProcess.AddNewAnswer(answerDTO); return(newAnswer.Id.ToString()); }
public async Task DeleteAsnwerAsync(AnswerDTO answer) { Delete(Mapping.Mapper.Map <AnswerDTO, Answer>(answer)); await SaveAsync(); }
public int AddAnswer(AnswerDTO dto) { AnswerCRUD answer = new AnswerCRUD(); return(answer.Add(dto)); }
public AnswerDTO Create(Answer a) { return(AnswerDTO.CreateFromDomain(a)); }
public void CreateAnswer(AnswerDTO answer) { _uow.Answers.Create(answer.ToAnswerEntity()); }