void ShowFilter(FilterItem filterItem, CustomFilterViewModel filterViewModel, Action onSave) { if (FilterDialogService.ShowDialog(MessageButton.OKCancel, "Create Custom Filter", "CustomFilterView", filterViewModel) != MessageResult.OK) { return; } filterItem.FilterCriteria = filterViewModel.FilterCriteria; filterItem.Name = filterViewModel.FilterName; ActiveFilterItem = filterItem; if (filterViewModel.Save) { onSave(); UpdateFilters(); } }
public void ModifyCustomFilter(FilterItem existing) { FilterItem clone = existing.Clone(); var filterViewModel = CreateCustomFilterViewModel(clone, true); ShowFilter(clone, filterViewModel, () => { existing.FilterCriteria = clone.FilterCriteria; existing.Name = clone.Name; SaveCustomFilters(); if (existing == SelectedItem) { OnSelectedItemChanged(); } }); }
void AddNewCustomFilter(FilterItem filterItem) { if (string.IsNullOrEmpty(filterItem.Name)) { int prevIndex = CustomFilters.Select(fi => Regex.Match(fi.Name, NewFilterName + @" (?<index>\d+)")).Where(m => m.Success).Select(m => int.Parse(m.Groups["index"].Value)).DefaultIfEmpty(0).Max(); filterItem.Name = NewFilterName + " " + (prevIndex + 1); } else { var existing = CustomFilters.FirstOrDefault(fi => fi.Name == filterItem.Name); if (existing != null) { CustomFilters.Remove(existing); } } CustomFilters.Add(filterItem); SaveCustomFilters(); }
void IFilterTreeViewModel.SetViewModel(object viewModel, object selectedFilterName) { this.viewModel = viewModel; var viewModelContainer = viewModel as IFilterTreeViewModelContainer <TEntity, TFilterEntity, TPrimaryKey>; if (viewModelContainer != null) { viewModelContainer.FilterTreeViewModel = this; } if (selectedFilterName != null) { FilterItem contextFilterItem = ContextFilters.FirstOrDefault(x => x.Name == selectedFilterName.ToString()); if (contextFilterItem != null) { SelectedItem = contextFilterItem; SelectedItem.IsSelected = true; } } UpdateFilterExpression(); }
public FilterItem Clone(string name, string imageUri) { return(FilterItem.Create(EntitiesCount, name, FilterCriteria, imageUri, ShowEntityCount)); }
public FilterItem Clone() { return(FilterItem.Create(EntitiesCount, Name, FilterCriteria, ImageUri, ShowEntityCount)); }
FilterItem CreateFilterItem(string name, CriteriaOperator filterCriteria, string imageUri, bool showEntityCount) { return(FilterItem.Create(GetEntityCount(filterCriteria), name, filterCriteria, imageUri, showEntityCount)); }
public void DeleteCustomFilter(FilterItem filterItem) { CustomFilters.Remove(filterItem); SaveCustomFilters(); }