private static Dictionary <string, int> GetQuestionPoints(ExcelQuestion selectedQuestion, ExcelProfile selectedProfile, ExcelDocument selectedDocument) { Dictionary <string, int> points = new Dictionary <string, int>(); var answersList = selectedProfile.GetProfileAnswers(); int openAnswerCount = 0; foreach (var answerItem in answersList) { if (answerItem == "другое") { var currentResults = selectedDocument.AnswerListContent.Where(a => a.ProfileNum == selectedProfile.Id && a.QuestionNum == selectedQuestion.Id).ToList(); foreach (var resultItem in currentResults) { var a = resultItem.GetAnswers(selectedProfile.Type).Except(answersList).ToList(); if (a.Count != 0) { openAnswerCount++; } } points.Add(answerItem, openAnswerCount); } else { var countCurrentAnswers = selectedDocument.AnswerListContent.Where(a => a.ProfileNum == selectedProfile.Id && a.QuestionNum == selectedQuestion.Id && a.GetAnswers(selectedProfile.Type).Contains(answerItem)).Count(); points.Add(answerItem, countCurrentAnswers); } } return(points); }
public static Dictionary <string, int> GetOpenAnswers(ExcelQuestion selectedQuestion, ExcelProfile selectedProfile, ExcelDocument selectedDocument) { Dictionary <string, int> points = new Dictionary <string, int>(); var currentResults = selectedDocument.AnswerListContent.Where(a => a.ProfileNum == selectedProfile.Id && a.QuestionNum == selectedQuestion.Id).ToList(); foreach (var resultItem in currentResults) { var openAnswers = resultItem.GetAnswers(selectedProfile.Type).Except(selectedProfile.GetProfileAnswers()).ToList(); if (openAnswers.Count != 0) { foreach (var item in openAnswers) { if (points.ContainsKey(item)) { points[item]++; } else { points.Add(item, 1); } } } } return(points); }