コード例 #1
0
        public async Task <IActionResult> UpdateAsync([FromRoute] int id, Testung item)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var testung = _context.Testungen
                          .AsNoTracking()
                          .Include(c => c.Chapters)
                          .ThenInclude(q => q.Questions)
                          .Where(m => m.Id == id)
                          .ToList();

            if (testung == null)
            {
                return(NoContent());
            }

            _mapper.Map(item, testung.FirstOrDefault());

            _bl.calculateScore(testung.FirstOrDefault());

            _context.Testungen.Update(testung.FirstOrDefault());
            _context.SaveChanges();
            QueryResponse <Testung> response = new QueryResponse <Testung>();

            response.Items        = testung;
            response.TotalRecords = testung.Count;
            return(Ok(testung));
        }
コード例 #2
0
 public void calculateScore(Testung _testung)
 {
     _testung.Chapters.ForEach(chapter =>
     {
         var scoreForChapter = 0;
         var index           = 0;
         chapter.Questions.ForEach(question =>
         {
             if (question.Type == "radio" && question.Value != "")
             {
                 int qScore = -1;
                 Int32.TryParse(question.Value, out qScore);
                 if (qScore >= 0)
                 {
                     scoreForChapter += qScore;
                     index++;
                 }
             }
         });
         chapter.Score = (scoreForChapter > 0) ? scoreForChapter / index: -1;
     });
 }