Esempio n. 1
0
        private void DgResMainDetails_OnOnFilter(object sender, FilterEvent e)
        {
            _viewModel.TransactionHeader.TransactionMainDetails.Clear();
            var counter = 0;

            _viewModel.Filter = null;

            _viewModel.ValuesObjects = new Dictionary <string, object>();

            foreach (var f in e.FiltersPredicate)
            {
                string paramter = "(@" + f.FilterColumnInfo.PropertyPath.Replace(".", "_") + counter + ")";
                object myObject = null;
                try
                {
                    myObject = Convert.ChangeType(f.FilterText, f.FilterColumnInfo.PropertyType, null);
                }
                catch (Exception)
                {
                    myObject = "";
                }
                switch (f.SelectedFilterOperation.FilterOption)
                {
                case Enums.FilterOperation.EndsWith:
                    myObject = "%" + f.FilterText;
                    break;

                case Enums.FilterOperation.StartsWith:
                    myObject = f.FilterText + "%";
                    break;

                case Enums.FilterOperation.Contains:
                    myObject = "%" + f.FilterText + "%";
                    break;
                }

                _viewModel.ValuesObjects.Add(f.FilterColumnInfo.PropertyPath.Replace(".", "_") + counter, myObject);

                if (counter > 0)
                {
                    _viewModel.Filter = _viewModel.Filter + " and ";
                }

                _viewModel.Filter = _viewModel.Filter + "it." + f.FilterColumnInfo.PropertyPath +
                                    f.SelectedFilterOperation.LinqUse + paramter;

                counter++;
            }
            _viewModel.GetReservationMainDetail(styleViewModel);
        }