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); } } }
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(); } }
private static void CheckRemoveFilter(FilterConditionsViewModel filterConditions, FilterConditionsViewModel parentFilterConditions) { if (filterConditions.Conditions.Count == 1 && filterConditions.FilterConditions.Count == 0 && parentFilterConditions != null) { parentFilterConditions.FilterConditions.Remove(filterConditions); } }
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(); } }
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(); } }