Example #1
0
        private void FillEmployeeCombo()
        {
            Operation.BeginOperation(this);

            this.Invoke((MethodInvoker)delegate
            {
                this.EmployeeComboBox.MultiColumnComboBoxElement.DropDownWidth = 500;

                this.EmployeeComboBox.AutoFilter = true;
                this.EmployeeComboBox.ValueMember = "ID";
                this.EmployeeComboBox.DisplayMember = "EmployeeName";
            });
            var q = EmployeeCmd.GetAll();
            this.Invoke((MethodInvoker)delegate
            {
                EmployeeComboBox.DataSource = q;
                this.EmployeeComboBox.AutoFilter = true;
                CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();
                FilterDescriptor empname = new FilterDescriptor("EmployeeName", FilterOperator.Contains, "");
                FilterDescriptor empNumber = new FilterDescriptor("EmployeejobNumber", FilterOperator.Contains, "");
                compositeFilter.FilterDescriptors.Add(empname);
                compositeFilter.FilterDescriptors.Add(empNumber);
                compositeFilter.LogicalOperator = FilterLogicalOperator.Or;

                this.EmployeeComboBox.EditorControl.FilterDescriptors.Add(compositeFilter);

            });
            Operation.EndOperation(this);


            th.Abort();

            
        }
        private void fillDonorsCombo()
        {

            Operation.BeginOperation(this);

            this.Invoke((MethodInvoker)delegate
            {
                this.DonorsColumnComboBox.MultiColumnComboBoxElement.DropDownWidth = 500;

                this.DonorsColumnComboBox.AutoFilter = true;
                this.DonorsColumnComboBox.ValueMember = "ID";
                this.DonorsColumnComboBox.DisplayMember = "Name";
            });
            var q = TheDonorCmd.GetAllDonors();
            this.Invoke((MethodInvoker)delegate
            {
                DonorsColumnComboBox.DataSource = q;
                FilterDescriptor filter = new FilterDescriptor();
                filter.PropertyName = this.DonorsColumnComboBox.DisplayMember;
                filter.Operator = FilterOperator.Contains;
                this.DonorsColumnComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);

            });
            Operation.EndOperation(this);

            th.Abort();

            


           
           

        }
		private IFilterDescriptor CreateFilterForColumn(GridViewDataColumn column)
		{
			FilterOperator filterOperator = GetFilterOperatorForType(column.DataType);
			FilterDescriptor descriptor = new FilterDescriptor(column.UniqueName, filterOperator, this.filterValue);
			descriptor.MemberType = column.DataType;

			return descriptor;
		}
Example #4
0
 private void settingfactorGridFilter()
 {
     FilterDescriptor filter = new FilterDescriptor();
     filter.PropertyName = "projname";
     filter.Operator = FilterOperator.IsEqualTo;
     filter.Value = null ;
     filter.IsFilterEditor = true;
     this.factorslist.FilterDescriptors.Add(filter);
 }
 private IMiddlewarePlugin CreateMiddlewareInstance(string filterType)
 {
     var type = TypeHelper<Type>.GetTypeByFullName(filterType);
     var typeFilterAttribute = new TypeFilterAttribute(type) { Order = 0 };
     var filterDescriptor = new FilterDescriptor(typeFilterAttribute, 0);
     var instance = _serviceProvider.GetService(type);
     var iMiddlewarePlugin = (IMiddlewarePlugin)instance;
     return iMiddlewarePlugin;
 }
Example #6
0
        private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            FilterDescriptor filterDescriptor = sender as FilterDescriptor;

            if (filterDescriptor == null)
            {
                return;
            }

            this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.ItemChanged, filterDescriptor));
        }
Example #7
0
 private void LoadSfzFilters(SfzRegion region)
 {
     FilterDescriptions    = new FilterDescriptor[1];
     FilterDescriptions[0] = new FilterDescriptor();
     FilterDescriptions[0].FilterMethod = region.filterType;
     FilterDescriptions[0].CutOff       = region.cutOff;
     FilterDescriptions[0].KeyTrack     = region.filterKeyTrack;
     FilterDescriptions[0].Resonance    = (float)SynthHelper.DBtoLinear(region.resonance);
     FilterDescriptions[0].RootKey      = region.filterKeyCenter;
     FilterDescriptions[0].VelTrack     = region.filterVelTrack;
 }
Example #8
0
        /// <summary>
        /// Gets the filter descriptor.
        /// </summary>
        /// <param name="tensor">The tensor.</param>
        /// <returns>FilterDescriptor.</returns>
        private static FilterDescriptor GetFilterDescriptor(NDArray tensor)
        {
            var result = new FilterDescriptor();

            result.SetFilterNdDescriptor(
                GetDataType(tensor.ElementType),
                cudnnTensorFormat.NCHW,
                tensor.DimensionCount,
                tensor.Shape.Select(x => (int)x).ToArray());
            return(result);
        }
Example #9
0
 public static DataSourceRequest NormalizeDateFilters(this DataSourceRequest request, DateTimePrecision precision)
 {
     // TODO: Add parameter validation.
     for (int i = 0; i < request.Filters.Count; ++i)
     {
         FilterDescriptor filter = request.Filters[i] as FilterDescriptor;
         if (filter != null && filter.ConvertedValue is DateTime && filter.Operator == FilterOperator.IsEqualTo)
         {
             DateTime val = (DateTime)filter.ConvertedValue;
             CompositeFilterDescriptor newFilter = new CompositeFilterDescriptor
             {
                 LogicalOperator = FilterCompositionLogicalOperator.And
             };
             DateTime lowerBound;
             DateTime upperBound;
             if (precision == DateTimePrecision.Seconds)
             {
                 lowerBound = val.TruncateToWholeSeconds();
                 upperBound = lowerBound.AddSeconds(1);
             }
             else if (precision == DateTimePrecision.Minutes)
             {
                 lowerBound = val.TruncateToWholeMinutes();
                 upperBound = lowerBound.AddMinutes(1);
             }
             else if (precision == DateTimePrecision.Hours)
             {
                 lowerBound = val.TruncateToWholeHours();
                 upperBound = lowerBound.AddHours(1);
             }
             else
             {
                 // If someone would be stupid enough to supply Hours | Minutes
                 throw new ArgumentException("Not supported precision. Only Second, Minute, Hour values are supported.", "precision");
             }
             newFilter.FilterDescriptors.Add(new FilterDescriptor
             {
                 Member     = filter.Member,
                 MemberType = filter.MemberType,
                 Operator   = FilterOperator.IsGreaterThanOrEqualTo,
                 Value      = lowerBound
             });
             newFilter.FilterDescriptors.Add(new FilterDescriptor
             {
                 Member     = filter.Member,
                 MemberType = filter.MemberType,
                 Operator   = FilterOperator.IsLessThan,
                 Value      = upperBound
             });
             request.Filters[i] = newFilter;
         }
     }
     return(request);
 }
Example #10
0
        public ListDocumentsVm(ICommonService service)
            : base(service)
        {
            _service = service;
            _context = service.Context;

            InitializeVM();

            _filter = new FilterDescriptor<DocumentDTO> {FilteringExpression = e => true};
            Documents.FilterDescriptors.Add(_filter);
        }
 private void RadGridView1_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangeEventArgs e)
 {
     AccountsdataServiceDataSource.FilterDescriptors.Remove(AccountsDetailsFilter);
     RadGridView Grid = (RadGridView)sender;
     RadControlsSilverlightClient.TDocs.AccountTypes a = (RadControlsSilverlightClient.TDocs.AccountTypes)Grid.SelectedItem;
     if (a != null)
     {
         AccountsDetailsFilter = new FilterDescriptor("typeID_fk", FilterOperator.IsEqualTo, a.accounttypeID_pk);
         AccountsdataServiceDataSource.FilterDescriptors.Add(AccountsDetailsFilter);
     }
 }
		public void StringificationTakesConvertersIntoAccount()
		{
			var query = new FilterDescriptor<MyObject>().Term(t => t.MyEnum, MyEnum.Foo);
			var serialized = _serializationClient.Serializer.Serialize(query).Utf8String();
			serialized.JsonEquals(@"
				{
					""term"" : {
						""myEnum"" : ""Foo""
					}
				}").Should().BeTrue();
		}
Example #13
0
        private static FilterDescriptor GetFilterDescriptor(TensorShape shape)
        {
            var result = new FilterDescriptor();

            result.SetFilterNdDescriptor(
                GetDataType(shape.ElementType),
                cudnnTensorFormat.NCHW,
                shape.DimensionCount,
                shape.Sizes.Select(x => (int)x).ToArray());
            return(result);
        }
Example #14
0
        private void GetUserInfo()
        {
            var dds             = ComDDSFactory.Get(ComDSFactory.Man, "GetV_S_UserQuery", dds_LoadedData);
            FilterDescriptor fd = new FilterDescriptor()
            {
                PropertyPath = "UserCode", Operator = FilterOperator.IsEqualTo, Value = USysInfo.UserCode
            };

            dds.FilterDescriptors.Add(fd);
            dds.Load();
        }
        private GridViewDataColumn GetDataColumnByFilterDescriptor(
            FilterDescriptor descriptor)
        {
            GridViewDataColumn gridViewDataColumn = (GridViewDataColumn)null;

            if (descriptor != null && descriptor.IsFilterEditor && !string.IsNullOrEmpty(descriptor.PropertyName))
            {
                gridViewDataColumn = this.ViewTemplate.Columns[descriptor.PropertyName];
            }
            return(gridViewDataColumn);
        }
Example #16
0
        public void StringificationTakesConvertersIntoAccount()
        {
            var query      = new FilterDescriptor <MyObject>().Term(t => t.MyEnum, MyEnum.Foo);
            var serialized = _serializationClient.Serializer.Serialize(query).Utf8String();

            serialized.JsonEquals(@"
				{
					""term"" : {
						""myEnum"" : ""Foo""
					}
				}"                ).Should().BeTrue();
        }
 private void radButtonElement3_Click(object sender, EventArgs e)
 {
     if (filterDescriptor == null)
     {
         filterDescriptor = new FilterDescriptor("CustomerName", FilterOperator.Contains, txtboxSearch.Text);
         rgCustomers.FilterDescriptors.Add(filterDescriptor);
     }
     else
     {
         filterDescriptor.Value = txtboxSearch.Text;
     }
 }
 /// <summary>
 ///     A filter allowing to filter hits based on a point location, using a bounding box
 /// </summary>
 public static FilterContainer GeoBoundingBox <T>(
     this FilterDescriptor <T> filterDescriptor,
     Expression <Func <T, object> > expression,
     Envelope envelope,
     GeoExecution?geoExecution = null) where T : class =>
 filterDescriptor.GeoBoundingBox(
     expression,
     envelope.MinX,
     envelope.MaxY,
     envelope.MaxX,
     envelope.MinY,
     geoExecution);
Example #19
0
        public void ProvideForAuthFilter_Ordering_ReturnsCorrectOrdering()
        {
            _descProvider.Descriptors.Add(FilterDescriptor.NewIncludeType(typeof(FakeAuthFilter2), 2, null));
            _descProvider.Descriptors.Add(FilterDescriptor.NewIncludeType(typeof(FakeAuthFilter), 1, null));

            var filters = GetFilters <IAuthorizationFilter>(_filterProviderWith1DescProvider);

            filters.Should().NotBeNull();
            filters.Should().HaveCount(2);
            filters.ElementAt(0).Should().BeOfType <FakeAuthFilter>();
            filters.ElementAt(1).Should().BeOfType <FakeAuthFilter2>();
        }
Example #20
0
        public void ProvideForAuthFilter_MultipleFiltersWithMatchingSkips_Instance_ReturnsEmptySet()
        {
            _descProvider.Descriptors.Add(FilterDescriptor.NewIncludeInstance(new FakeAuthFilter(), 1));
            _descProvider.Descriptors.Add(FilterDescriptor.NewIncludeInstance(new FakeAuthFilter2(), 2));
            _descProvider.Descriptors.Add(FilterDescriptor.NewSkip(typeof(FakeAuthFilter)));
            _descProvider.Descriptors.Add(FilterDescriptor.NewSkip(typeof(FakeAuthFilter2)));

            var filters = GetFilters <IAuthorizationFilter>(_filterProviderWith1DescProvider);

            filters.Should().NotBeNull();
            filters.Should().BeEmpty();
        }
Example #21
0
        public void ProvideForAuthFilter_MultipleFiltersWithOneMatchingSkip_Instance_ReturnsNonSkippedFilters()
        {
            _descProvider.Descriptors.Add(FilterDescriptor.NewIncludeInstance(new FakeAuthFilter(), 1));
            _descProvider.Descriptors.Add(FilterDescriptor.NewIncludeInstance(new FakeAuthFilter2(), 2));
            _descProvider.Descriptors.Add(FilterDescriptor.NewSkip(typeof(FakeAuthFilter)));

            var filters = GetFilters <IAuthorizationFilter>(_filterProviderWith1DescProvider);

            filters.Should().NotBeNull();
            filters.Should().HaveCount(1);
            filters.ElementAt(0).Should().BeOfType <FakeAuthFilter2>();
        }
 /// <summary>
 ///     A filter allowing to filter hits based on a point location using a bounding box
 /// </summary>
 public static FilterContainer GeoBoundingBox <T>(
     this FilterDescriptor <T> filterDescriptor,
     string field,
     Envelope envelope,
     GeoExecution?geoExecution = null) where T : class =>
 filterDescriptor.GeoBoundingBox(
     field,
     envelope.MinX,
     envelope.MaxY,
     envelope.MaxX,
     envelope.MinY,
     geoExecution);
Example #23
0
        public static FilterModel ToSortModel(this FilterDescriptor filter)
        {
            FilterModel model = new FilterModel()
            {
                Member         = filter.Member,
                ConvertedValue = filter.ConvertedValue != null?filter.ConvertedValue.ToString() : "",
                                     Operator = filter.Operator.ToString(),
                                     Value    = filter.Value != null?filter.Value.ToString() : "",
            };

            return(model);
        }
Example #24
0
        /// <summary>
        /// Converts a FilterDescriptor object into a Filter&lt;<typeparamref name="T"/>&gt;
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="descriptor"></param>
        /// <returns></returns>
        public static Filter <T> Build <T>(this FilterDescriptor descriptor) where T : class
        {
            if (descriptor is null)
            {
                return(null);
            }

            var result = new Filter <T>();

            foreach (var filter in descriptor.Filters)
            {
                var op = GetOperation(filter.Operator);

                // Detect the type
                var type = typeof(T).GetProperty(filter.Property).PropertyType;
                type = Nullable.GetUnderlyingType(type) ?? type;

                if (type == typeof(decimal))
                {
                    // Cast to decimal
                    if (decimal.TryParse(filter.Value, out var val))
                    {
                        // Apply filter
                        result.By(filter.Property, op, val, (Connector)descriptor.Connector);
                    }
                }
                else if (type == typeof(int))
                {
                    // Cast to int
                    if (int.TryParse(filter.Value, out var val))
                    {
                        // Apply filter
                        result.By(filter.Property, op, val, (Connector)descriptor.Connector);
                    }
                }
                else if (type == typeof(byte))
                {
                    // Cast to byte
                    if (byte.TryParse(filter.Value, out var val))
                    {
                        // Apply filter
                        result.By(filter.Property, op, val, (Connector)descriptor.Connector);
                    }
                }
                else if (type == typeof(string))
                {
                    // Apply filter
                    result.By(filter.Property, op, filter.Value);
                }
            }

            return(result);
        }
        public void Should_return_filter_descriptor_for_function()
        {
            FunctionNode functionNode = StringFunction();

            functionNode.Accept(visitor);

            FilterDescriptor result = (FilterDescriptor)visitor.Result;

            Assert.Equal(FilterOperator.StartsWith, result.Operator);
            Assert.Equal("Name", result.Member);
            Assert.Equal("J", result.Value);
        }
Example #26
0
        public static async Task ParseFilterJson(ProjectData project, FilterDescriptor filter, IProductivity3dV2ProxyCompaction productivity3dV2ProxyCompaction, IHeaderDictionary customHeaders)
        {
            if (filter == null)
            {
                return;
            }

            var processFilterJson = await ProcessFilterJson(project, filter.FilterJson, productivity3dV2ProxyCompaction, customHeaders);

            filter.FilterJson       = processFilterJson.filterJson;
            filter.ContainsBoundary = processFilterJson.containsBoundary;
        }
Example #27
0
        public void ConstructorWithParamsTest()
        {
            const FilterOperator Fo = FilterOperator.Any;

            var myValue = new object();

            var item = new FilterDescriptor("igogo", Fo, myValue);

            Assert.AreEqual("igogo", item.ColumnName);
            Assert.AreEqual(Fo, item.Operator);
            Assert.AreEqual(myValue, item.Value);
        }
Example #28
0
 private void unreadToggleButton_ToggleStateChanged(object sender, StateChangedEventArgs args)
 {
     if (unreadFilter == null)
     {
         unreadFilter = new FilterDescriptor("Status", FilterOperator.IsEqualTo, EmailStatus.Unread);
     }
     if (args.ToggleState == Telerik.WinControls.Enumerations.ToggleState.On)
     {
         allToggleButton.ToggleState = Telerik.WinControls.Enumerations.ToggleState.Off;
         mailsGridView.FilterDescriptors.Add(unreadFilter);
     }
 }
        public void Apply_HasPolicyWithNoClaimsAuthorizationRequirements_DoesNothing()
        {
            var requirement = new DenyAnonymousAuthorizationRequirement();
            var requirements = new List<IAuthorizationRequirement>() { requirement };
            var policy = new AuthorizationPolicy(requirements, new List<string>());
            var filterDescriptor = new FilterDescriptor(new AuthorizeFilter(policy), 30);
            this.operationFilterContext.ApiDescription.ActionDescriptor.FilterDescriptors.Add(filterDescriptor);

            this.operationFilter.Apply(this.operation, this.operationFilterContext);

            Assert.Null(this.operation.Security);
        }
Example #30
0
 private bool FilterBool(bool b, FilterDescriptor filter)
 {
     try
     {
         bool filterVal = (bool)filter.Value;
         return(b == filterVal);;
     }
     catch
     {
         return(false);
     }
 }
        public void Should_return_filter_descriptor_for_boolean()
        {
            ComparisonNode comparison = BooleanComparison();

            comparison.Accept(visitor);

            FilterDescriptor result = (FilterDescriptor)visitor.Result;

            Assert.Equal(FilterOperator.IsEqualTo, result.Operator);
            Assert.Equal("Active", result.Member);
            Assert.Equal(true, result.Value);
        }
Example #32
0
        public void Endpoints_AccessParameters_InitializedFromProvider()
        {
            // Arrange
            var routeValue     = "Value";
            var requiredValues = new Dictionary <string, string>
            {
                ["Name"] = routeValue
            };
            var displayName      = "DisplayName!";
            var order            = 1;
            var template         = "/Template!";
            var filterDescriptor = new FilterDescriptor(new ControllerActionFilter(), 1);

            var mockDescriptorProvider = new Mock <IActionDescriptorCollectionProvider>();

            mockDescriptorProvider.Setup(m => m.ActionDescriptors).Returns(new ActionDescriptorCollection(new List <ActionDescriptor>
            {
                new ActionDescriptor
                {
                    RouteValues        = requiredValues,
                    DisplayName        = displayName,
                    AttributeRouteInfo = new AttributeRouteInfo
                    {
                        Order    = order,
                        Template = template
                    },
                    FilterDescriptors = new List <FilterDescriptor>
                    {
                        filterDescriptor
                    }
                }
            }, 0));

            var dataSource = CreateMvcEndpointDataSource(mockDescriptorProvider.Object);

            // Act
            var endpoints = dataSource.Endpoints;

            // Assert
            var endpoint        = Assert.Single(endpoints);
            var matcherEndpoint = Assert.IsType <RouteEndpoint>(endpoint);

            var routeValuesAddressMetadata = matcherEndpoint.Metadata.GetMetadata <RouteValuesAddressMetadata>();

            Assert.NotNull(routeValuesAddressMetadata);
            var endpointValue = routeValuesAddressMetadata.RequiredValues["Name"];

            Assert.Equal(routeValue, endpointValue);

            Assert.Equal(displayName, matcherEndpoint.DisplayName);
            Assert.Equal(order, matcherEndpoint.Order);
            Assert.Equal(template, matcherEndpoint.RoutePattern.RawText);
        }
        public void Should_set_FilterDescriptor_MemberType_from_anonymous_dynamic()
        {
            dynamic aDynamicObject = new { StringValue = "Foo" };

            var filterDescriptor = new FilterDescriptor
            {
                Member = "StringValue"
            };

            filterDescriptor.SetMemberTypeFrom((object)aDynamicObject);
            filterDescriptor.MemberType.ShouldEqual(typeof(string));
        }
        public void Should_return_filter_descriptor_for_comparison()
        {
            ComparisonNode comparisonNode = NumberComparison();

            comparisonNode.Accept(visitor);

            FilterDescriptor result = (FilterDescriptor)visitor.Result;

            Assert.Equal(FilterOperator.IsEqualTo, result.Operator);
            Assert.Equal("Age", result.Member);
            Assert.Equal(10, Convert.ToInt32(result.Value));
        }
        public static IMiddlewarePlugin CreateMiddlewareInstance(this IServiceProvider serviceProvider, Type filterType)
        {
            var typeFilterAttribute = new TypeFilterAttribute(filterType)
            {
                Order = 0
            };
            var filterDescriptor  = new FilterDescriptor(typeFilterAttribute, 0);
            var instance          = serviceProvider.GetService(filterType);
            var iMiddlewarePlugin = (IMiddlewarePlugin)instance;

            return(iMiddlewarePlugin);
        }
Example #36
0
        public void ToString_TwoPartCompoundExpression_CreatesValidString()
        {
            var filter = new FilterDescriptor(
                LogicalOperators.Or,
                new MobileObservableCollection<IFilterDescriptor>
                    {
                        new FilterDescriptor("FirstName", FilterOperator.StartsWith, "a"),
                        new FilterDescriptor("LastName", FilterOperator.Contains, "ba"),
                    });

            Assert.AreEqual("(FirstName StartsWith {a}) OR (LastName Contains {ba})", filter.ToString());
        }
        protected virtual void SetOperatorAndValue(FilterOperator filterOperator, object value)
        {
            FilterDescriptor descriptor = Descriptor.FilterDescriptors[Descriptor.FilterDescriptors.Count - 1] as FilterDescriptor;

            if (descriptor == null)
            {
                throw new InvalidCastException();
            }

            descriptor.Operator = filterOperator;
            descriptor.Value    = value;
        }
Example #38
0
        /// <summary>
        /// Inicia a visita.
        /// </summary>
        /// <param name="operatorNode"></param>
        public void StartVisit(IOperatorNode operatorNode)
        {
            FilterDescriptor item = new FilterDescriptor {
                Operator = operatorNode.FilterOperator
            };
            CompositeFilterDescriptor currentDescriptor = this.CurrentDescriptor as CompositeFilterDescriptor;

            if (currentDescriptor != null)
            {
                currentDescriptor.FilterDescriptors.Add(item);
            }
            this._context.Push(item);
        }
        private void RadGridView1_SelectionChanged(object sender, SelectionChangeEventArgs e)
        {
            dataServiceDataSource.FilterDescriptors.Remove(DetailsFilter);
            RadGridView Grid = (RadGridView)sender;

            RadControlsSilverlightClient.TDocs.SignersView a = (RadControlsSilverlightClient.TDocs.SignersView)Grid.SelectedItem;
            if (a != null)
            {
                DetailsFilter = new FilterDescriptor("signerID_pk", FilterOperator.IsEqualTo, a.signerID_pk);
                dataServiceDataSource.FilterDescriptors.Add(DetailsFilter);
                signersDataForm.CurrentItem = dataServiceDataSource.DataView.CurrentItem;
            }
        }
Example #40
0
 protected virtual void SetFilterOperator(FilterOperator filterOperator)
 {
     if (filterOperator != FilterOperator.None && filterOperator != FilterOperator.IsNull && filterOperator != FilterOperator.IsNotNull)
     {
         throw new InvalidOperationException("Invalid filter operator in SetFilterOperator context!");
     }
     this.filterDescriptor = (FilterDescriptor)null;
     if (filterOperator != FilterOperator.None)
     {
         this.filterDescriptor = this.CreateFilterDescriptor(filterOperator);
     }
     this.OnFilterConfirmed();
 }
Example #41
0
        internal static bool IsActive(this FilterDescriptor filter)
        {
            object value = filter.Value;

            if (value == null)
            {
                return(false);
            }

            string valueAsString = value as string;

            return(valueAsString == null || !string.IsNullOrEmpty(valueAsString));
        }
Example #42
0
 private void showdone_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
 {
     this.marketGrid.FilterDescriptors.Remove("done");
     if (!showdone.Checked)
     {
         FilterDescriptor filter = new FilterDescriptor();
         filter.PropertyName = "done";
         filter.Operator = FilterOperator.IsEqualTo;
         filter.Value = showdone.Checked;
         filter.IsFilterEditor = true;
         this.marketGrid.FilterDescriptors.Add(filter);
     }
 }
 public void AccountsView_SelectionChanged(object sender, SelectionChangeEventArgs e)
 {
     RadWindow window = new RadWindow();
     TDocs.BADSInfo selectedItem = AccountsView.SelectedItem as TDocs.BADSInfo;
     FilterDescriptor fd = new FilterDescriptor("accountNumber", FilterOperator.IsEqualTo, selectedItem.accountNumber);
     entitlementsDataSource.FilterDescriptors.Add(fd);
     
     window.Content = new BADSSheet(selectedItem);
     window.Header = "Account Data Sheet";
     window.Height = 620;
     window.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterScreen;
     window.ShowDialog();
     entitlementsDataSource.FilterDescriptors.Remove(fd);
 }
Example #44
0
 private void RadGridView1_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangeEventArgs e)
 {
     ContactsdataServiceDataSource.FilterDescriptors.Remove(BankContactsDetailsFilter);
     AccountsdataServiceDataSource.FilterDescriptors.Remove(BankAccountsDetailsFilter);
     RadGridView Grid = (RadGridView)sender;
     RadControlsSilverlightClient.TDocs.Banks b = (RadControlsSilverlightClient.TDocs.Banks)Grid.SelectedItem;
     if (b != null)
     {
         BankContactsDetailsFilter = new FilterDescriptor("bankID_fk", FilterOperator.IsEqualTo, b.bankID_pk);
         ContactsdataServiceDataSource.FilterDescriptors.Add(BankContactsDetailsFilter);
         BankAccountsDetailsFilter = new FilterDescriptor("bankID_fk", FilterOperator.IsEqualTo, b.bankID_pk);
         AccountsdataServiceDataSource.FilterDescriptors.Add(BankAccountsDetailsFilter);
     }
 }
Example #45
0
        private void FillComboBox()
        {
            Operation.BeginOperation(this);
            this.SubActivtiesComboBox.MultiColumnComboBoxElement.DropDownWidth = 500;

            this.SupplierComboBox.MultiColumnComboBoxElement.DropDownWidth = 300;
            this.Invoke((MethodInvoker)delegate
            {
                this.SubActivtiesComboBox.AutoFilter = true;
                this.SubActivtiesComboBox.ValueMember = "ID";
                this.SubActivtiesComboBox.DisplayMember = "SubActivityName";
                ///
                this.SupplierComboBox.AutoFilter = true;
                this.SupplierComboBox.ValueMember = "ID";
                this.SupplierComboBox.DisplayMember = "Name";

            });
            var q = SubActivityCmd.GetAllSubActivitiesByProjectID(InformationsClass.ProjID);
            var q1 = SuppliersCmd.GetAll();
            this.Invoke((MethodInvoker)delegate
            {  ///تعبئة النشاطات الفرعية
                SubActivtiesComboBox.DataSource = q;
                FilterDescriptor filter = new FilterDescriptor();
                filter.PropertyName = this.SubActivtiesComboBox.DisplayMember;
                filter.Operator = FilterOperator.Contains;
                this.SubActivtiesComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
                //تعبئة الموردين
                SupplierComboBox.DataSource = q1;
                FilterDescriptor filter2 = new FilterDescriptor();
                filter2.PropertyName = this.SupplierComboBox.DisplayMember;
                filter2.Operator = FilterOperator.Contains;
                this.SupplierComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter2);
                ////////FillText
                XExpID = TragetExpens.ID;
                SubActivtiesComboBox.Text = TragetExpens.ProjectSubActivity.SubActivityName;
                ExpensesNameTextBox.Text = TragetExpens.ExpensesName;
                BillTextBox.Text = TragetExpens.BillNumber;
                CashingNumberTextBox.Text = TragetExpens.CashingNumber;
                DateOfProecssPicker.Text = TragetExpens.DateofProcess.ToString();
                RequiarAmountTextBox.Text = TragetExpens.RequiarAmount.ToString();
                SupplierComboBox.Text = TragetExpens.Supplier.Name;
            });
            Operation.EndOperation(this);
           
          

            th.Abort();
        }
        public void StartVisit(IOperatorNode operatorNode)
        {
            FilterDescriptor filterDescriptor = new FilterDescriptor
            {
                Operator = operatorNode.FilterOperator
            };

            CompositeFilterDescriptor compositeFilterDescriptor = CurrentDescriptor as CompositeFilterDescriptor;

            if (compositeFilterDescriptor != null)
            {
                compositeFilterDescriptor.FilterDescriptors.Add(filterDescriptor);
            }

            context.Push(filterDescriptor);
        }
Example #47
0
        private void FillCombo()
        {
            ///GetAllContractsProjectID
            ///

            Operation.BeginOperation(this);

            this.Invoke((MethodInvoker)delegate
            {
                this.EmployeeComboBox.MultiColumnComboBoxElement.DropDownWidth = 500;

                this.EmployeeComboBox.AutoFilter = true;
                this.EmployeeComboBox.ValueMember = "ID";
                this.EmployeeComboBox.DisplayMember = "Employee.EmployeeName";
            });
            var q = ContractCmd.GetAllContractsByproID(InformationsClass.ProjID);
            this.Invoke((MethodInvoker)delegate
            {
                EmployeeComboBox.DataSource = q;
                this.EmployeeComboBox.AutoFilter = true;
                CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();
                FilterDescriptor empname = new FilterDescriptor("Employee.EmployeeName", FilterOperator.Contains, "");
                FilterDescriptor empNumber = new FilterDescriptor("Employee.EmployeejobNumber", FilterOperator.Contains, "");
                compositeFilter.FilterDescriptors.Add(empname);
                compositeFilter.FilterDescriptors.Add(empNumber);
                compositeFilter.LogicalOperator = FilterLogicalOperator.Or;

                this.EmployeeComboBox.EditorControl.FilterDescriptors.Add(compositeFilter);
                //FillText
                XSalaryID = Tragetsalary.ID;
                EmployeeComboBox.Text = Tragetsalary.Contract.Employee.EmployeeName;
                SalaryTextBox.Text = Tragetsalary.Amount.ToString();
                FromonthDateTimePicker.Text = Tragetsalary.Formonth.ToString();
                ReleaseDateTimePicker.Text = Tragetsalary.IssueDate.ToString();
            });
            Operation.EndOperation(this);
          
            th.Abort();






        }
Example #48
0
        public void ToString_NestedCompoundExpression_CreatesValidString()
        {
            var filter = new FilterDescriptor(
                LogicalOperators.Or,
                new MobileObservableCollection<IFilterDescriptor>
                    {
                        new FilterDescriptor("FirstName", FilterOperator.StartsWith, "a"),
                        new FilterDescriptor(
                            LogicalOperators.And,
                            new MobileObservableCollection<IFilterDescriptor>
                                {
                                    new FilterDescriptor("LastName", FilterOperator.Contains, "ba"),
                                    new FilterDescriptor("Salary", FilterOperator.IsLessThan, "2000"),
                                })
                    });

            Assert.AreEqual("(FirstName StartsWith {a}) OR ((LastName Contains {ba}) AND (Salary IsLessThan {2000}))", filter.ToString());
        }
        private void InitializeGridViewSettings()
        {
            var dateGroupDescriptor = new Telerik.Windows.Data.GroupDescriptor<Email, DateTime, DateTime>();
            dateGroupDescriptor.GroupingExpression = email => email.Received.Date;
            this.gridView.GroupDescriptors.Add(dateGroupDescriptor);

            var dateSortDescriptor = new SortDescriptor<Email, DateTime>();
            dateSortDescriptor.SortingExpression = item => item.Received;
            dateSortDescriptor.SortDirection = System.ComponentModel.ListSortDirection.Descending;
            this.gridView.SortDescriptors.Add(dateSortDescriptor);

            this.unreadDescriptor = new FilterDescriptor
            {
                Member = "Status",
                Operator = FilterOperator.IsEqualTo,
                Value = "Unread",
            };
        }
        public static void ExpandItemIntoView(this RadTreeListView treeListView, object item)
        {
            if (treeListView.Items.IndexOf(item) == -1)
            {
                var filterDescriptor = new FilterDescriptor<object>() { FilteringExpression = i => i == item };
                treeListView.FilterDescriptors.Add(filterDescriptor);

                var itemsToExpand = new List<object>(treeListView.Items.OfType<object>());

                treeListView.FilterDescriptors.Remove(filterDescriptor);

                ExpandAndScrollRecursive(treeListView, itemsToExpand.FirstOrDefault(), itemsToExpand);
            }
            else
            {
                treeListView.ScrollIntoViewAsync(item, (f) =>
                {
                    treeListView.ExpandHierarchyItem(item);
                });
            }
        }
        public UCPrescription()
        {
            InitializeComponent();
            SetIcons();
            CheckSessionAccessList();

            this.Disposed += (x, y) => DataLayer.EndTransaction();

            DataLayer.BeginTransaction();

            RadGridView gridViewControl = this.cmbDrugs.EditorControl;
            gridViewControl.MasterTemplate.AutoGenerateColumns = false;

            cmbDrugs.DisplayMember = "Title";

            FilterDescriptor filter = new FilterDescriptor();
            filter.PropertyName = "Title";
            filter.Operator = FilterOperator.Contains;
            filter.Value = string.Empty;
            cmbDrugs.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);

            cmbDrugs.EditorControl.FilterDescriptors.LogicalOperator = FilterLogicalOperator.Or;
            cmbDrugs.MultiColumnComboBoxElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            cmbDrugs.AutoFilter = true;
            cmbDrugs.MultiColumnComboBoxElement.DropDownWidth = 200;
            cmbDrugs.MultiColumnComboBoxElement.DropDownHeight = 200;

            grvItems.DataSource = new BindingList<SavedPrescription>(DataLayer.GetSavedPrescriptions(true));

            ClearForm();

            _drugs= DataLayer.GetDrugs(true);
            cmbDrugs.DataSource = _drugs;

            //txtManual.GotFocus += new EventHandler(txtManual_GotFocus);
            //txtManual.LostFocus += new EventHandler(txtManual_LostFocus);

            ucFilter1.Grid = grvItems;
        }
Example #52
0
        private void FillComboBox()
        {
            Operation.BeginOperation(this);

            this.Invoke((MethodInvoker)delegate
            {
                this.SubActivtiesComboBox.MultiColumnComboBoxElement.DropDownWidth = 500;

                this.SupplierComboBox.MultiColumnComboBoxElement.DropDownWidth = 300;

                this.SubActivtiesComboBox.AutoFilter = true;
                this.SubActivtiesComboBox.ValueMember = "ID";
                this.SubActivtiesComboBox.DisplayMember = "SubActivityName";
                ///
                this.SupplierComboBox.AutoFilter = true;
                this.SupplierComboBox.ValueMember = "ID";
                this.SupplierComboBox.DisplayMember = "Name";

            });
            var q = SubActivityCmd.GetAllSubActivitiesByProjectID(InformationsClass.ProjID);
            var q1 = SuppliersCmd.GetAll();
            this.Invoke((MethodInvoker)delegate
            {  ///تعبئة النشاطات الفرعية
                SubActivtiesComboBox.DataSource = q;
                FilterDescriptor filter = new FilterDescriptor();
                filter.PropertyName = this.SubActivtiesComboBox.DisplayMember;
                filter.Operator = FilterOperator.Contains;
                this.SubActivtiesComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
                //تعبئة الموردين
                SupplierComboBox.DataSource = q1;
                FilterDescriptor filter2 = new FilterDescriptor();
                filter2.PropertyName = this.SupplierComboBox.DisplayMember;
                filter2.Operator = FilterOperator.Contains;
                this.SupplierComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter2);
            });
            Operation.EndOperation(this);
            th.Abort();
   
        }
Example #53
0
        private void FillCombo()
        {

           
          
            this.Invoke((MethodInvoker)delegate
            {
                this.DonorsComboBox.MultiColumnComboBoxElement.DropDownWidth = 300;

                this.DonorsComboBox.AutoFilter = true;
                this.DonorsComboBox.ValueMember = "ID";
                this.DonorsComboBox.DisplayMember = "TheDonor.Name";
            });

            Operation.BeginOperation(this);
            var q = TheDonorsProjectCmd.GetAllDonorsByproID(InformationsClass.ProjID);
            Operation.EndOperation(this);
            this.Invoke((MethodInvoker)delegate
            {
                DonorsComboBox.DataSource = q;
                FilterDescriptor filter = new FilterDescriptor();
                filter.PropertyName = this.DonorsComboBox.DisplayMember;
                filter.Operator = FilterOperator.Contains;
                this.DonorsComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
                //FillText

               
                XAmountID = TragetAmountsReceived.ID;
                DonorsComboBox.Text = TragetAmountsReceived.TheDonorsProject.TheDonor.Name;
                DateOfProecssPicker.Text = TragetAmountsReceived.Date.ToString();
                CostTextBox.Text = TragetAmountsReceived.Cost.ToString();


            });
            th.Abort();
         

        }
Example #54
0
        private void InitCmbPatient()
        {
            RadGridView gridViewControl = this.cmbPatient.EditorControl;
            gridViewControl.MasterTemplate.AutoGenerateColumns = false;

            cmbPatient.DisplayMember = "PatientName";

            FilterDescriptor filter = new FilterDescriptor();
            filter.PropertyName = "PatientName";
            filter.Operator = FilterOperator.Contains;
            filter.Value = string.Empty;
            cmbPatient.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);

            filter = new FilterDescriptor();
            filter.PropertyName = "AccountantCode";
            filter.Operator = FilterOperator.StartsWith;
            filter.Value = string.Empty;
            cmbPatient.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);

            cmbPatient.EditorControl.FilterDescriptors.LogicalOperator = FilterLogicalOperator.Or;
            cmbPatient.MultiColumnComboBoxElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            cmbPatient.AutoFilter = true;
            cmbPatient.MultiColumnComboBoxElement.DropDownWidth = 300;
            cmbPatient.MultiColumnComboBoxElement.DropDownHeight = 200;
        }
Example #55
0
		private bool ProcessFilter(ExecuteWhen when, FilterDescriptor desc)
		{
			if (desc.FilterInstance == null)
			{
				desc.FilterInstance = filterFactory.Create(desc.FilterType);

				IFilterAttributeAware filterAttAware = desc.FilterInstance as IFilterAttributeAware;

				if (filterAttAware != null)
				{
					filterAttAware.Filter = desc.Attribute;
				}
			}

			try
			{
				if (logger.IsDebugEnabled)
				{
					logger.DebugFormat("Running filter {0}/{1}", when, desc.FilterType.FullName);
				}

				return desc.FilterInstance.Perform(when, engineContext, this, context);
			}
			catch(Exception ex)
			{
				if (logger.IsErrorEnabled)
				{
					logger.Error("Error processing filter " + desc.FilterType.FullName, ex);
				}

				throw;
			}
		}
Example #56
0
        private void OnFilterSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            string selectedFilterValue = (bloodComboBox.SelectedItem as Label).Content.ToString();

            if (selectedFilterValue == selectAll)
            {
                bloodDomainDataSource.FilterDescriptors.Clear();
                return;
            }

            FilterDescriptor bloodFilter = new FilterDescriptor()
            {
                PropertyPath = "Donor.Blood",
                Operator = FilterOperator.IsEqualTo,
                Value = selectedFilterValue
            };
            bloodDomainDataSource.FilterDescriptors.Clear();
            bloodDomainDataSource.FilterDescriptors.Add(bloodFilter);
        }
Example #57
0
        /// <summary>
        ///     初始化ViewModel
        ///     <remarks>
        ///         统一在此处创建并注册CollectionView集合。
        ///     </remarks>
        /// </summary>
        private void InitializeVM()
        {
            Annuals = new QueryableDataServiceCollectionView<AnnualDTO>(_context, _context.Annuals);
            _annualDescriptor = new FilterDescriptor("Year", FilterOperator.IsGreaterThanOrEqualTo,
                DateTime.Now.Year - 2);
            Annuals.FilterDescriptors.Add(_annualDescriptor);
            Annuals.OrderBy(p => p.Year);
            Annuals.LoadedData += (sender, e) =>
            {
                if (Annuals.Count != 0)
                {
                    _curAnnual = e.Entities.Cast<AnnualDTO>().SingleOrDefault(p => p.IsOpen);
                    if (!Plans.AutoLoad)
                        Plans.AutoLoad = true;
                    else
                        Plans.Load(true);
                }
                RefreshCommandState();
            }; //获取年度集合,同时得到当前计划年度,再获取计划集合,同时得到当前计划

            Plans = _service.CreateCollection(_context.Plans);
            Plans.LoadedData += (sender, e) =>
            {
                CurPlan =
                    e.Entities.Cast<PlanDTO>()
                        .Where(p => p.Year == _curAnnual.Year)
                        .OrderBy(p => p.VersionNumber)
                        .LastOrDefault();
                if (!AllPlanHistories.AutoLoad)
                    AllPlanHistories.AutoLoad = true;
                else
                    AllPlanHistories.Load(true);
            };
            _service.RegisterCollectionView(Plans); //注册查询集合,获取计划集合,同时得到当前计划

            AllPlanHistories = _service.CreateCollection(_context.PlanHistories);
            AllPlanHistories.LoadedData += (o, e) =>
            {
                ViewPlanHistories = new ObservableCollection<PlanHistoryDTO>();
                if (CurPlan != null)
                {
                    foreach (var ph in AllPlanHistories.SourceCollection.Cast<PlanHistoryDTO>())
                    {
                        ph.ActionCategories.AddRange(_service.GetActionCategoriesForPlanHistory(ph));
                        ph.AircraftCategories.AddRange(_service.GetAircraftCategoriesForPlanHistory(ph));
                        ph.AircraftTypes.AddRange(_service.GetAircraftTypesForPlanHistory(ph));
                        if (ph.PlanId == CurPlan.Id)
                            ViewPlanHistories.Add(ph);
                        _context.ChangeState(ph, EntityStates.Unchanged);
                    }
                    RaisePropertyChanged(() => ViewPlanHistories);
                }
            };
            _service.RegisterCollectionView(AllPlanHistories); //注册查询集合,获取计划集合,同时得到当前计划

            ViewPlanAircrafts = _service.CreateCollection(_context.PlanAircrafts);
            _planAcDescriptor = new FilterDescriptor("AircraftId", FilterOperator.IsEqualTo, null);
            ViewPlanAircrafts.FilterDescriptors.Add(_planAcDescriptor);
            _service.RegisterCollectionView(ViewPlanAircrafts); //注册查询集合,获取所有还没飞机的计划飞机集合,用户界面展示

            Aircrafts = new QueryableDataServiceCollectionView<AircraftDTO>(_context, _context.Aircrafts);
            //获取所有运营飞机的集合,TODO:判断是否必要筛选掉已退出运营的飞机

            AllPlanAircrafts = new QueryableDataServiceCollectionView<PlanAircraftDTO>(_context, _context.PlanAircrafts);
            //获取所有的计划飞机,用于关联到运营飞机,用于从运营飞机编制计划时使用

            AllActionCategories = new QueryableDataServiceCollectionView<ActionCategoryDTO>(_context,
                _context.ActionCategories); //获取所有的计划飞机,用于关联到运营飞机,用于从运营飞机编制计划时使用
        }
        private static FilterDescriptor GetFilterDefinition(string processSystemName)
        {
            var accountFilter = new FilterDescriptor(
                 LogicalOperators.Or,
                 new MobileObservableCollection<IFilterDescriptor>
                     {
                         new FilterDescriptor(
                             Constants.FilterAccount + "Id",
                             FilterOperator.IsEqualTo,
                             Utils.CurrentUserAccountId == -1 ? null : (int?)Utils.CurrentUserAccountId)
                             {
                        MemberType = typeof (int)
                    }
                });

            var result = new FilterDescriptor(
                LogicalOperators.And,
                new MobileObservableCollection<IFilterDescriptor>
                    {
                        new FilterDescriptor(Constants.ProcessSystemName, FilterOperator.IsEqualTo,processSystemName )
                {
                    MemberType = typeof (string)
                },
                accountFilter
            });
            return result;
        }
        /// <summary>
        ///     初始化ViewModel
        ///     <remarks>
        ///         统一在此处创建并注册CollectionView集合。
        ///     </remarks>
        /// </summary>
        private void InitializeVm()
        {
            AddCommand = new DelegateCommand<object>(OnAdd, CanAdd);
            RemoveCommand = new DelegateCommand<object>(OnRemove, CanRemove);
            AddDetailCommand = new DelegateCommand<object>(OnAddDetail, CanAddDetail);
            RemoveDetailCommand = new DelegateCommand<object>(OnRemoveDetail, CanRemoveDetail);
            CellEditEndCommand = new DelegateCommand<object>(CellEditEnd);

            // 创建并注册CollectionView
            Annuals = _fleetPlanService.CreateCollection(_fleetPlanService.Context.Annuals);
            EngineMaintainPlans = _service.CreateCollection(_context.EngineMaintainPlans,
                o => o.EngineMaintainPlanDetails);
            _annualFilterDescriptor = new FilterDescriptor("AnnualId", FilterOperator.IsEqualTo, Guid.Empty);
            _maintainPlanTypeFilterDescriptor = new FilterDescriptor("MaintainPlanType", FilterOperator.IsEqualTo, 0);
            EngineMaintainPlans.FilterDescriptors.Add(_annualFilterDescriptor);
            EngineMaintainPlans.FilterDescriptors.Add(_maintainPlanTypeFilterDescriptor);
            EngineMaintainPlans.LoadedData += (o, e) => { EngineMaintainPlan = EngineMaintainPlans.FirstOrDefault(); };
            _service.RegisterCollectionView(EngineMaintainPlans);
        }
Example #60
-1
        public SelectInvoicesVm(SelectInvoices selectInvoicesWindow, IPaymentService service)
            : base(service)
        {
            SelectInvoicesWindow = selectInvoicesWindow;
            CommitCommand = new DelegateCommand<object>(OnCommitExecute, CanCommitExecute);
            CancelCommand = new DelegateCommand<object>(OnCancelExecute, CanCancelExecute);
            Suppliers = new QueryableDataServiceCollectionView<SupplierDTO>(service.Context, service.Context.Suppliers);
            Currencies = new QueryableDataServiceCollectionView<CurrencyDTO>(service.Context, service.Context.Currencies);
            _supplierFilter = new FilterDescriptor("SupplierId", FilterOperator.IsEqualTo, 0);
            #region 发票
            Invoices = new QueryableDataServiceCollectionView<BaseInvoiceDTO>(service.Context, service.Context.Invoices);
            Invoices.FilterDescriptors.Add(_supplierFilter);
            Invoices.LoadedData += (e, o) =>
            {
                InvoiceList = new ObservableCollection<BaseInvoiceDTO>();
                Invoices.ToList().ForEach(InvoiceList.Add);

                SelectInvoices = new ObservableCollection<BaseInvoiceDTO>();
                if (!InvoiceList.Any()) return;
                _paymentNotice.PaymentNoticeLines.ToList().ForEach(p =>
                {
                    if (InvoiceList.Any(t => t.InvoiceId == p.InvoiceId))
                        SelectInvoices.Add(InvoiceList.FirstOrDefault(t => t.InvoiceId == p.InvoiceId));
                });
            };
            #endregion
        }