예제 #1
0
        internal List<UserQuestion> AssignQuestionsIds(string userid )
        {
            UserQuestionContext uqc = new UserQuestionContext();
            var quassign = uqc.GetAllForPartition(userid);
            if (quassign.Count == 0 )
            {
                var rez = GetAll();
                foreach (var item in rez)
                {
                    UserQuestion uq = new UserQuestion();
                    uq.UserId = userid;
                    uq.QuestionId = item.QuestionId;
                    uq.CategoryId = item.CategoryId;
                    uq.IsActive = true;
                    uqc.AddObject(uq);
                }

            }

            quassign = uqc.GetAllForPartition(userid);
            return quassign.ToList<UserQuestion>();
        }
예제 #2
0
        private CategoryScore[] CalculateScore(string id)
        {
            UserQuestionContext uqc = new UserQuestionContext();
            var ques = uqc.GetAllForPartition(id);

               var results = from q in ques
                          group  q by q.CategoryId into grps
                          select new CategoryScore {CategoryId = grps.Key , Score = grps.Sum(g=>g.Answer)};

               return results.ToArray();
        }
예제 #3
0
        internal void UpdateAnswer(string id, string questionId, int answer)
        {
            UserQuestionContext uqc = new UserQuestionContext();
            UserQuestion uq =  uqc.GetById(id, questionId);

            // should be int

            uq.Answer = answer;
            uqc.UpdateObject(uq, false);

            // Change to calculate score for each category
        }
예제 #4
0
 internal void RemoveQuestions(string userid)
 {
     UserQuestionContext uqc = new UserQuestionContext();
     var quassign = uqc.GetAllForPartition(userid);
     if (quassign != null)
     {
         foreach (var item in quassign)
         {
             uqc.DeleteObject(item,false);
         }
     }
 }