CalendarAggregator.CalendarRenderer.ViewFilter C# (CSharp) Метод

ViewFilter() приватный статический Метод

private static ViewFilter ( string view, List events ) : List
view string
events List
Результат List
        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;
        }