コード例 #1
0
        public void RefreshConditionButtons(FilterConditionsViewModel filter = null)
        {
            var isRootFilter = filter == null;

            if (filter == null)
            {
                DeleteSelectedConditionsButton.IsVisible = false;
                GroupSelectedConditionsAnd.IsVisible     = false;
                GroupSelectedConditionsOr.IsVisible      = false;
                UngroupSelectedConditions.IsVisible      = false;
                filter = FilterConditions;
                if (!AllowQuery)
                {
                    return;
                }
            }
            if (filter != null)
            {
                var selectedCount = filter.SelectedConditions.Count();
                if (selectedCount > 0)
                {
                    DeleteSelectedConditionsButton.IsVisible = true;
                }
                if (selectedCount > 0 && !isRootFilter)
                {
                    UngroupSelectedConditions.IsVisible = true;
                }
                if (selectedCount > 1 && filter.FilterOperator == FilterOperator.And)
                {
                    GroupSelectedConditionsOr.IsVisible = true;
                }
                if (selectedCount > 1 && filter.FilterOperator == FilterOperator.Or)
                {
                    GroupSelectedConditionsAnd.IsVisible = true;
                }
                foreach (var item in filter.FilterConditions)
                {
                    RefreshConditionButtons(item);
                }
            }
        }
コード例 #2
0
        private void DeleteSelected(FilterConditionsViewModel filterConditions = null, FilterConditionsViewModel parentFilterConditions = null)
        {
            var isRootFilter = filterConditions == null;

            if (filterConditions == null)
            {
                filterConditions = FilterConditions;
            }
            var selectedConditions = filterConditions.SelectedConditions;

            foreach (var item in filterConditions.Conditions.Where(c => c.QueryConditionObject.IsSelected).ToArray())
            {
                filterConditions.Conditions.Remove(item);
            }
            foreach (var item in filterConditions.FilterConditions.ToArray())
            {
                DeleteSelected(item, filterConditions);
            }
            CheckRemoveFilter(filterConditions, parentFilterConditions);
            if (isRootFilter)
            {
                RefreshConditionButtons();
            }
        }
コード例 #3
0
 private static void CheckRemoveFilter(FilterConditionsViewModel filterConditions, FilterConditionsViewModel parentFilterConditions)
 {
     if (filterConditions.Conditions.Count == 1 &&
         filterConditions.FilterConditions.Count == 0 &&
         parentFilterConditions != null)
     {
         parentFilterConditions.FilterConditions.Remove(filterConditions);
     }
 }
コード例 #4
0
        private void UnGroupSelected(FilterConditionsViewModel filterConditions = null, FilterConditionsViewModel parentFilterConditions = null)
        {
            var isRootFilter = filterConditions == null;

            if (filterConditions == null)
            {
                filterConditions = FilterConditions;
            }
            var selectedConditions = filterConditions.SelectedConditions;

            if (selectedConditions.Count() > 0 &&
                parentFilterConditions != null)
            {
                foreach (var item in selectedConditions)
                {
                    filterConditions.Conditions.Remove(item);
                    parentFilterConditions.Conditions.Insert(0, item);
                }
            }
            foreach (var item in filterConditions.FilterConditions.ToArray())
            {
                UnGroupSelected(item, filterConditions);
            }
            CheckRemoveFilter(filterConditions, parentFilterConditions);
            if (isRootFilter)
            {
                RefreshConditionButtons();
            }
        }
コード例 #5
0
        private void GroupSelected(FilterOperator filterOperator, FilterConditionsViewModel filterConditions = null, FilterConditionsViewModel parentFilterConditions = null)
        {
            var isRootFilter = filterConditions == null;

            if (filterConditions == null)
            {
                filterConditions = FilterConditions;
            }
            var selectedConditions = filterConditions.SelectedConditions;

            if (selectedConditions.Count() > 1 &&
                filterConditions.FilterOperator != filterOperator)
            {
                var newFilterCondition = CreateFilterCondition();
                newFilterCondition.FilterOperator = filterOperator;
                foreach (var item in selectedConditions)
                {
                    filterConditions.Conditions.Remove(item);
                    newFilterCondition.Conditions.Insert(0, item);
                }
                filterConditions.FilterConditions.Add(newFilterCondition);
            }
            foreach (var item in filterConditions.FilterConditions.ToArray())
            {
                GroupSelected(filterOperator, item, filterConditions);
            }
            if (isRootFilter)
            {
                RefreshConditionButtons();
            }
        }