示例#1
0
        public IEnumerable <Feed> GetFilteredFeeds(Graph graph)
        {
            List <String> Agefilter         = new List <string>();
            List <String> Personalityfilter = new List <string>();
            List <String> Genderfilter      = new List <string>();

            if (graph.AgeFilter == AgeFilter.Both)
            {
                Agefilter.Add("");
                Agefilter.Add("25+");
                Agefilter.Add("25-");
            }
            if (graph.AgeFilter == AgeFilter.min25)
            {
                Agefilter.Add("25-");
            }
            if (graph.AgeFilter == AgeFilter.plus25)
            {
                Agefilter.Add("25+");
            }

            if (graph.PersonalityFilter == PersonalityFilter.Both)
            {
                Personalityfilter.Add("");
                Personalityfilter.Add("I");
                Personalityfilter.Add("E");
            }
            if (graph.PersonalityFilter == PersonalityFilter.I)
            {
                Personalityfilter.Add("I");
            }
            if (graph.PersonalityFilter == PersonalityFilter.E)
            {
                Personalityfilter.Add("E");
            }

            if (graph.GenderFilter == GenderFilter.Both)
            {
                Genderfilter.Add("f");
                Genderfilter.Add("m");
                Genderfilter.Add("");
            }
            if (graph.GenderFilter == GenderFilter.Male)
            {
                Genderfilter.Add("m");
            }
            if (graph.GenderFilter == GenderFilter.Female)
            {
                Genderfilter.Add("f");
            }
            if (graph.PersonFilter == null)
            {
                graph.PersonFilter = "";
            }

            ThemeManager  tm    = new ThemeManager();
            List <string> Terms = new List <string>();

            if (graph.ThemeFilter != null)
            {
                foreach (string theme in graph.ThemeFilter.Split(',').Select(w => w.Trim()))
                {
                    foreach (string s in tm.GetThemeByName(theme).TermsList)
                    {
                        if (!Terms.Contains(s))
                        {
                            Terms.Add(s);
                        }
                    }
                }
            }


            IEnumerable <Feed> filteredList = repo.ReadFilteredFeed(graph.StartDate, graph.EndDate, Agefilter, Personalityfilter, Genderfilter, graph.PersonFilter.Split(',').Select(s => s.Trim()).ToList(), graph.SentimentStart, graph.SentimentEnd, Terms);

            return(filteredList);
        }