public KnowledgeResult ToKnowledge(KnowledgeResultModel result, int role) { KnowledgeResult krm = new KnowledgeResult(); krm.KnowledgeResultId = result.Id; krm.KnowledgeId = unitOfWork.KnowledgeRepository.FindAll().Where(i => i.KnowledgeName == result.KnowledgeName).FirstOrDefault().KnowledgeId; krm.Result = CountResult(result); krm.QuestionResults = Mapper.Map <IEnumerable <QuestionResultModel>, List <QuestionResult> >(result.Questions); krm.Date = DateTime.Now; krm.UserId = role; return(krm); }
public int CountResult(KnowledgeResultModel result) { float mark = 0; foreach (var i in result.Questions) { if (i.Answer.CorrectAnswer == true) { mark += 100 / result.Questions.Count; } } return((int)Math.Round(mark)); }
public IEnumerable <KnowledgeResultModel> ToKnowledgeModel(IEnumerable <KnowledgeResult> result) { List <KnowledgeResultModel> knowledgeResultModel = new List <KnowledgeResultModel>(); foreach (var i in result) { KnowledgeResultModel krm = new KnowledgeResultModel(); krm.Id = i.KnowledgeResultId; krm.KnowledgeName = i.Knowledge.KnowledgeName; var res = i.QuestionResults.Where(i => i.KnowledgeResultId == krm.Id).Select(i => i); krm.Questions = Mapper.Map <IEnumerable <QuestionResult>, List <QuestionResultModel> >(res); krm.UserId = i.UserId; knowledgeResultModel.Add(krm); } return(knowledgeResultModel.ToArray()); }
public async Task <ActionResult> ProcessResult([FromBody] KnowledgeResultModel knowledgeResultModel) { try { if (knowledgeResultModel == null) { return(BadRequest("Model object is null")); } await TestResultService.ProcessResult(knowledgeResultModel, Int32.Parse(User.Identity.Name)); return(CreatedAtRoute("Result processed", new { id = knowledgeResultModel.Id }, knowledgeResultModel)); } catch (Exception ex) { return(StatusCode(500, "Internal server error")); } }
public async Task ProcessResult(KnowledgeResultModel result, int userId) { var knowledge = KnowledgeResultToKnowledgeResultModel.ToKnowledge(result, userId); List <QuestionResult> qr = new List <QuestionResult>(); foreach (var i in knowledge.QuestionResults) { qr.Add(new QuestionResult { QuestionId = i.QuestionId, AnswerResult = new AnswerResult { AnswerId = i.AnswerResult.AnswerId } }); } await UnitOfWork.KnowledgeResultRepository.AddAsync(new KnowledgeResult { KnowledgeId = knowledge.KnowledgeId, UserId = knowledge.UserId, Date = knowledge.Date, Result = knowledge.Result, QuestionResults = qr }); await UnitOfWork.SaveAsync(); }