Example #1
0
        private void GenerateFilterEntries(List <IFilterLine> lineList)
        {
            FilterEntries.Clear();

            FilterEntry lastDataEntry    = new FilterEntry();
            FilterEntry lastCommentEntry = new FilterEntry();

            FilterConstants.FilterEntryType entryType = FilterConstants.FilterEntryType.Unknown;

            foreach (var line in lineList)
            {
                if (!string.IsNullOrEmpty(line.Ident))
                {
                    entryType = FilterConstants.FilterEntryType.Content;
                    if (line.Ident == "Show" || line.Ident == "Hide")
                    {
                        lastDataEntry = FilterEntry.CreateDataEntry(line);
                        FilterEntries.Add(lastDataEntry);
                    }
                    else
                    {
                        lastDataEntry.Content.Add(line);
                    }
                }

                else if (line.Comment != string.Empty)
                {
                    if (entryType != FilterConstants.FilterEntryType.Comment)
                    {
                        lastCommentEntry = FilterEntry.CreateCommentEntry(line);
                        entryType        = FilterConstants.FilterEntryType.Comment;
                        FilterEntries.Add(lastCommentEntry);
                    }
                    else
                    {
                        lastCommentEntry.Content.AddComment(line);
                    }
                    entryType = FilterConstants.FilterEntryType.Comment;
                }

                else if (line.Comment == string.Empty)
                {
                    if (entryType == FilterConstants.FilterEntryType.Filler)
                    {
                        continue;
                    }
                    else
                    {
                        FilterEntries.Add(FilterEntry.CreateFillerEntry());
                        entryType = FilterConstants.FilterEntryType.Filler;
                    }
                }
            }
        }
Example #2
0
        public void InsertEntries(int index, IEnumerable <IFilterEntry> newEntries)
        {
            var list = newEntries.ToList();

            for (var i = list.Count - 1; i >= 0; i--)
            {
                if (i == 0)
                {
                    break;
                }
                list.Insert(i, FilterEntry.CreateFillerEntry());
            }
            list.Add(FilterEntry.CreateFillerEntry());

            this.FilterEntries.InsertRange(index, list);
        }