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();
        }
예제 #5
0
 public FilterItem Clone(string name, string imageUri)
 {
     return(FilterItem.Create(EntitiesCount, name, FilterCriteria, imageUri, ShowEntityCount));
 }
예제 #6
0
 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();
 }