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; } } } }
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); }