private static List<ZonelessEvent> ViewFilter(string view, List<ZonelessEvent> events)
{
var filtered_events = events.CloneObject();
try
{
if (view == null)
return events;
var view_list = view.Split(',').ToList(); // view=newportnewsva,sports,-soccer,-baseball
var remainder = new List<string>();
foreach (var view_item in view_list)
{
if (view_item.StartsWith("-")) // do exclusions first
{
var item = view_item.TrimStart('-');
filtered_events = filtered_events.FindAll(evt => evt.categories != null && !evt.categories.Split(',').ToList().Contains(item));
}
else
remainder.Add(view_item);
}
foreach (var view_item in remainder) // then inclusions
{
filtered_events = filtered_events.FindAll(evt => evt.categories != null && evt.categories.Split(',').ToList().Contains(view_item));
}
}
catch (Exception e)
{
GenUtils.PriorityLogMsg("exception", "ViewFilter", e.Message + e.StackTrace);
}
return filtered_events;
}