コード例 #1
0
        public static EvaluationSectionViewModel AsSection(this Debriefing debrief, string formType, IQueryable<Question> questions)
        {
            EvaluationSectionViewModel esvm = new EvaluationSectionViewModel(formType);

            EvaluationCategoryViewModel ecvm = new EvaluationCategoryViewModel();
            esvm.Categories.Add(ecvm);
            Category qCategory = null;
            bool first = true;
            foreach (var question in questions.OrderBy(q => q.Number))
            {
                if (first)
                {
                    ecvm.Title = question.Category.Description;
                    qCategory = question.Category;
                    first = false;
                }

                // When category changes...
                if (qCategory != question.Category)
                {
                    // 'Close' current category
                    ecvm = new EvaluationCategoryViewModel()
                    {
                        Title = question.Category.Description
                    };
                    esvm.Categories.Add(ecvm);
                    // DnE (Did Not Encounter) is a shortcut that applies to the entire category
                    if (question.Constraint == Constraint.DefaultWithDne)
                    {
                        ecvm.HasDidNotEncounter = true;
                    }
                    qCategory = question.Category;
                }
                EvaluationQuestionViewModel eqvm = new EvaluationQuestionViewModel()
                {
                    Number = question.Number,
                    Text = question.Description,
                    AnswerConstraints = question.Constraint
                };
                var answer = (
                    from e in debrief.Evaluations
                    where e.QuestionNumber == question.Number
                    select e).FirstOrDefault();
                if (null != answer)
                {
                    if (!answer.HasAnswer())
                    {
                        eqvm.DefaultAnswer = DefaultAnswer(question.Constraint);
                    }
                    eqvm.Notes = answer.Notes;
                    eqvm.Answer = answer.Decode(question.Constraint);
                }
                ecvm.Questions.Add(eqvm);
            }
            return esvm;
        }
コード例 #2
0
        public JsonResult AddSection(EvaluationSectionViewModel evaluationSectionViewModel)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }
                if (!string.IsNullOrEmpty(evaluationSectionViewModel.SectionName))
                {
                    var evaluationSection = new EvaluationSection
                    {
                        SectionName         = evaluationSectionViewModel.SectionName,
                        EvaluationId        = evaluationSectionViewModel.EvaluationId,
                        EvaluationQuestions = evaluationSectionViewModel.EvaluationQuestions
                    };

                    if (evaluationSectionViewModel.Id.HasValue && evaluationSectionViewModel.Id.Value > 0)
                    {
                        evaluationSection.Id = (int)evaluationSectionViewModel.Id;
                        _context.EvaluationSections.Update(evaluationSection);
                    }
                    else
                    {
                        _context.EvaluationSections.Add(evaluationSection);
                    }
                    _context.SaveChangesAsync();

                    return(Json(new ReturnData <string>
                    {
                        Success = true,
                        Message = "Section name saved successfully"
                    }));
                }
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "Section name cannot be empty"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "An error occurred,please retry : " + ex.Message
                }));
            }
        }