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>(); }
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(); }
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 }
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); } } }