Пример #1
0
        public Questionnaire Questionnaire(int userId, int advertiseId)
        {
            var questionnaireRepo = new QuickRepository <Questionnaire>();
            var questionnaire     =
                questionnaireRepo.FirstOrDefault(x => x.UserId == userId && x.AdvertiseId == advertiseId) ??
                questionnaireRepo.Add(new Questionnaire
            {
                AdvertiseId = advertiseId,
                UserId      = userId
            });

            List <Cluster> listCluster = Cached.Load("cached_listCluster",
                                                     key => new QuickRepository <Cluster>().ToList());
            List <Question> listQuestion = Cached.Load("cached_listQuestion",
                                                       key => new QuickRepository <Question>().ToList());
            List <Answer> listAnswer = new QuickRepository <Answer>()
                                       .Where(x => x.QuestionnaireId == questionnaire.Id)
                                       .ToList();
            List <Cluster> parsedClusters = listCluster.Select(x => {
                x.QuestionList = listQuestion.Where(
                    y => y.IdCluster == x.Id
                    ).ToList();
                x.AnswerList = listAnswer.Where(y =>
                                                x.QuestionList.Any(
                                                    z => z.Id == y.QuestionId
                                                    )
                                                ).ToList();
                return(x);
            }).ToList();

            questionnaire.ClusterList = parsedClusters;

            return(questionnaire);
        }