private void RemoveFilterEntry(FilterDetailItemViewModel selectedViewModel)
        {
            if (selectedViewModel == null)
            {
                return;
            }

            // Ein neu angelegtes, noch nicht in der DB gespeichertes Objekt muss nicht gelöscht werden
            if (!selectedViewModel.FilterEntry.IsNew)
            {
                selectedViewModel.FilterEntry.IsDeleted = true;
            }
            selectedViewModel.FilterEntry.IsNew = selectedViewModel.FilterEntry.IsModified = false;

            var grouping = FilterEntries.Where(g => g.Key == selectedViewModel.FilterEntry.FilterEntryType.Name).FirstOrDefault();

            if (grouping != null)
            {
                // Den Filter auf Modified setzen, da sonst nicht gespeichert wird
                if (grouping.Remove(CreateFilterDetailItemViewModel(selectedViewModel.FilterEntry)))
                {
                    Filter.IsModified = true;
                }
            }
        }
 private void RemoveFilterEntries()
 {
     foreach (var groupedItems in FilterEntries.Select(g => g.Items))
     {
         var selectedEntries = groupedItems.Where(m => m.IsSelected == true).ToList();
         for (int i = selectedEntries.Count - 1; i >= 0; i--)
         {
             RemoveFilterEntry(selectedEntries[i]);
         }
     }
 }
Example #3
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;
                    }
                }
            }
        }
        private void LoadFilterEntries()
        {
            FilterEntries.Clear();

            IEnumerable <FilterDetailItemViewModel> filterEntries = new List <FilterDetailItemViewModel>(Filter.FilterEntries.Select(f => CreateFilterDetailItemViewModel(f)));

            var sorted = from filterEntry in filterEntries
                         orderby filterEntry.FilterEntry.FilterEntryType.Name
                         group filterEntry by filterEntry.FilterEntry.FilterEntryType.Name into entryGroup
                         select new Grouping <string, FilterDetailItemViewModel>(entryGroup.Key, entryGroup);

            _filterEntries.ReplaceRange(sorted);
        }