示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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());
        }
示例#4
0
        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"));
            }
        }
示例#5
0
        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();
        }