/// <summary> /// Preprocesses the filter descriptor. /// </summary> /// <param name="filterDescriptor">The filter descriptor.</param> /// <param name="filterGuid">The filter unique identifier.</param> /// <param name="processName">Name of the process.</param> /// <param name="callback">The callback.</param> public void PreprocessFilterDescriptor(IFilterDescriptor filterDescriptor, Guid filterGuid, string processName, Action<IFilterDescriptor> callback) { // request UPD parameters from User var udpFilters = filterDescriptor.GetAllUdpDescriptors(); if (udpFilters != null && udpFilters.Count > 0) { UDPValuesViewModel.Value.Title = LanguageService.Translate("Label_ProvideFilterParams"); UDPValuesViewModel.Value.UdpList.Clear(); foreach (var filter in udpFilters) { UDPValuesViewModel.Value.UdpList.Add(FilterDescriptorDecorator.FromFilterDescriptor(filter)); var filterValue = filter.Value as FilterValue; if (filterValue != null && filterValue.ProvidedValue == null) { filterValue.ProvidedValue = filterValue.DefaultValue; } } FilteringUtils.LoadFilterAdditionalParameters(UDPValuesViewModel.Value.UdpList, processName, TheDynamicTypeManager); ThePopupFactory.Value.Popup() .SetCustomViewModel(UDPValuesViewModel.Value) .SetIsModal(true) .SetCaption(LanguageService.Translate("Label_FilterParameters")) .SetPosition(PopupPosition.Center) .Show( () => callback(filterDescriptor), () => { callback(null); return false; }); } else { callback(filterDescriptor); } }
private void UpdateUdps() { using (UdpList.SuspendNotifications()) { UdpList.Clear(); _processedFilter = null; if (string.IsNullOrEmpty(FilterDefinition)) { return; } var filterDef = FilterDefinition; _processedFilter = FilterDescriptor.FromJSON(filterDef); var udpFilters = _processedFilter.GetAllUdpDescriptors(); foreach (var filter in udpFilters) { // replace parameters to their default values var value = filter.Value as FilterValue; if (value != null) { if (value.ProvidedValue == null) { value.ProvidedValue = value.DefaultValue; } value.PropertyChanged += (sender, args) => { try { SuppressUdpUpdate = true; FilterDefinition = _processedFilter.ToJSON(); } finally { SuppressUdpUpdate = false; } }; } UdpList.Add(FilterDescriptorDecorator.FromFilterDescriptor(filter)); } if (FilterSource != null) { FilterSource.UpdateParameters(UdpList); } } }
private void PopulateUdp(string filterDef) { UdpList.Clear(); _processedFilter = FilterDescriptor.FromJSON(filterDef); var udpFilters = _processedFilter.GetAllUdpDescriptors(); foreach (var filter in udpFilters) { // replace parameters to their default values var value = filter.Value as FilterValue; if (value != null) { if (value.ProvidedValue == null) { value.ProvidedValue = value.DefaultValue; } value.PropertyChanged += delegate { if (!_isLoading) { ViewConfigurator.FilterDefinition = GetProcessedFilter().ToJSON(); } }; } UdpList.Add(FilterDescriptorDecorator.FromFilterDescriptor(filter)); } FilteringUtils.LoadFilterAdditionalParameters(UdpList, Parent.Model); }
private static List<IParameterBuilder> GetFilterParameters(IFilterDescriptor filter) { var parameterBuilders = new List<IParameterBuilder>(); if (filter == null) return parameterBuilders; var udpDescriptors = filter.GetAllUdpDescriptors(); foreach (var descriptor in udpDescriptors) { var filterValue = descriptor.Value as FilterValue; if (filterValue == null || filterValue.ProvidedValue == null || (filterValue.ProvidedValue as FilterValue) == null) continue; var fieldName = ((FilterValue)filterValue.ProvidedValue).SystemName.TrimEnd("Id"); var fieldValue = "@" + fieldName; parameterBuilders.Add(GenericParameterBuilder.CreateFromField(fieldValue, SqlDbType.Int, fieldName)); descriptor.Value = fieldValue; descriptor.EscapeWildcards = false; } return parameterBuilders; }
/// <summary> /// Populates the UDP. /// </summary> /// <param name="filterDef">The filter definition.</param> private void PopulateUdp(string filterDef) { var filterDefinition = filterDef; UdpList.Clear(); _processedFilter = FilterDescriptor.FromJSON(filterDefinition); foreach (var filter in _processedFilter.GetAllUdpDescriptors()) { var value = filter.Value as FilterValue; if (value != null) if (value.ProvidedValue == null) value.ProvidedValue = value.DefaultValue; var decorator = FilterDescriptorDecorator.FromFilterDescriptor(filter); StartListenFilterValuePropertyChangedEvent(decorator); UdpList.Add(decorator); } FilteringUtils.LoadFilterAdditionalParameters(UdpList, ProcessSystemName, TheDynamicTypeManager); }