/// <summary>
 /// Добавление фильтра в коллекцию дочерних
 /// </summary>
 /// <param name="filterWrapper">Фильтр</param>
 /// <param name="filterStatus">Статус добавляемого фильтра</param>
 public void AddFilter(FilterWrapper filterWrapper, FilterStatus filterStatus)
 {
     filterWrapper.FilterStatus     = filterStatus;
     filterWrapper.PropertyChanged += FilterWrapperOnPropertyChanged;
     _filters.Add(filterWrapper);
     OnFilterAdded?.Invoke(this, EventArgs.Empty);
 }
示例#2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FilterWrapper"/> class.
 /// </summary>
 /// <param name="parent">Родительский шаблон</param>
 /// <param name="filter">Фильтр-исходник</param>
 public FilterWrapper(ViewWrapper parent, FilterWrapper filter)
 {
     FilterId       = filter.FilterId;
     Name           = filter.Name;
     NameUpperCase  = filter.NameUpperCase;
     OriginalParent = filter.OriginalParent;
     Parent         = parent;
 }
        /// <summary>
        /// Содержит ли шаблон такой фильтр с проверкой по Id
        /// </summary>
        /// <param name="filter">Фильтр</param>
        public bool ContainsFilter(FilterWrapper filter)
        {
            foreach (var filterWrapper in Filters)
            {
                if (filterWrapper.FilterId.IntegerValue == filter.FilterId.IntegerValue)
                {
                    return(true);
                }
            }

            return(false);
        }
 /// <summary>
 /// Удалить или пометить как "Удаляемый" дочерний фильтр
 /// </summary>
 /// <param name="filter">Фильтр</param>
 public void RemoveFilter(FilterWrapper filter)
 {
     if (filter.FilterStatus == FilterStatus.New)
     {
         filter.PropertyChanged -= FilterWrapperOnPropertyChanged;
         _filters.Remove(filter);
         OnFilterRemoved?.Invoke(this, EventArgs.Empty);
     }
     else
     {
         filter.FilterStatus = FilterStatus.Remove;
     }
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ViewWrapper"/> class.
        /// </summary>
        /// <param name="view">Вид</param>
        public ViewWrapper(View view)
        {
            View          = view;
            Name          = view.Name;
            NameUpperCase = Name.ToUpper();
            IsTemplate    = view.IsTemplate;
            ViewTypeGroup = GetViewTypeGroup(view);

            var filters        = view.GetFilters().ToList();
            var filterWrappers = new List <FilterWrapper>();

            foreach (var elementId in filters)
            {
                var filterWrapper = new FilterWrapper(this, elementId);
                filterWrapper.PropertyChanged += FilterWrapperOnPropertyChanged;
                filterWrappers.Add(filterWrapper);
            }

            _filters = new ObservableCollection <FilterWrapper>(filterWrappers.OrderBy(w => w.Name));
            Filters  = new ReadOnlyObservableCollection <FilterWrapper>(_filters);
        }