Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
		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);
        }