Beispiel #1
0
        public void StartsFilter()
        {
            var builder  = new WebFilterConverter <User>();
            var goodUser = new User {
                Name = "AAAseed"
            };
            var goodUser2 = new User {
                Name = "bBbseed"
            };
            var badUser = new User {
                Name = "edgseed"
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.Name), WebFilterOperand.Starts, new List <string> {
                "aAa", "bbb"
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, goodUser2, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Equal(2, users.Count);
            Assert.Equal(users[0], goodUser);
            Assert.Equal(users[1], goodUser2);
        }
Beispiel #2
0
        public void EqualsFilterOnCollection()
        {
            var builder  = new WebFilterConverter <User>();
            var goodUser = new User {
                Users = new List <User> {
                    new User {
                        Id = 20
                    }, new User {
                        Id = 21
                    }
                }
            };
            var badUser = new User {
                Users = new List <User> {
                    new User {
                        Id = 30
                    }, new User {
                        Id = 31
                    }
                }
            };

            var filter = new WebFilter <User>(new ExpressionParser().Parse <User>("users.id"), WebFilterOperand.Equals, new List <int> {
                20
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Single(users);
            Assert.Equal(users[0], goodUser);
        }
Beispiel #3
0
        public void LessThanOrEqualFilter()
        {
            var builder = new WebFilterConverter <User>();

            var goodUser = new User {
                Id = 0
            };
            var goodUser2 = new User {
                Id = 1
            };
            var badUser = new User {
                Id = 3
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.Id), WebFilterOperand.LessThanOrEqual, new List <int> {
                1, 2
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, goodUser2, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Equal(2, users.Count);
            Assert.Equal(users[0], goodUser);
            Assert.Equal(users[1], goodUser2);
        }
Beispiel #4
0
        public void NullAnniversary()
        {
            var builder = new WebFilterConverter <User>();

            var goodUser = new User {
                BirthDay = DateTime.Today
            };
            var badUser = new User {
                BirthDay = DateTime.Today.AddDays(1)
            };
            var nullUser = new User {
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.BirthDay), WebFilterOperand.Anniversary, new List <DateTime?> {
                DateTime.Today, null
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, badUser, nullUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Equal(2, users.Count);
            Assert.Equal(users[0], goodUser);
            Assert.Equal(users[1], nullUser);
        }
Beispiel #5
0
        public void LikeOnNullableString(string name, bool result)
        {
            var pattern = "abc";
            var builder = new WebFilterConverter <User>();
            var user    = new User {
                Name = name
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.Name), WebFilterOperand.Like, new List <string> {
                pattern
            });
            var expression = builder.ToExpression(filter);
            var compiled   = expression.Compile();

            Assert.Equal(result, compiled.Invoke(user));
        }
Beispiel #6
0
        public void LikeOnNullableDate(string date, bool result)
        {
            var pattern = "2019";
            var user    = new User();

            if (DateTime.TryParse(date, out var parsedDate))
            {
                user.BirthDay = parsedDate;
            }
            var builder = new WebFilterConverter <User>();

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.BirthDay), WebFilterOperand.Like, new List <string> {
                pattern
            });
            var expression = builder.ToExpression(filter);
            var compiled   = expression.Compile();

            Assert.Equal(result, compiled.Invoke(user));
        }
Beispiel #7
0
        public void EqualsFilter(params int[] values)
        {
            var builder  = new WebFilterConverter <User>();
            var goodUser = new User {
                Id = 1
            };
            var badUser = new User {
                Id = 3
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.Id), WebFilterOperand.Equals, new List <int>(values));
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Single(users);
            Assert.Equal(users[0], goodUser);
        }
Beispiel #8
0
        public void BetweenFilter()
        {
            var builder  = new WebFilterConverter <User>();
            var goodUser = new User {
                ContractStart = DateTime.Today.AddHours(12)
            };
            var badUser = new User {
                ContractStart = DateTime.Today.AddDays(2)
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.ContractStart), WebFilterOperand.Between, new List <Period> {
                new Period(DateTime.Today, DateTime.Today.AddDays(1))
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Single(users);
            Assert.Equal(users[0], goodUser);
        }
Beispiel #9
0
        public void GreaterThanFilter()
        {
            var builder  = new WebFilterConverter <User>();
            var goodUser = new User {
                Id = 3
            };
            var badUser = new User {
                Id = 1
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.Id), WebFilterOperand.GreaterThan, new List <int> {
                1, 2
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Single(users);
            Assert.Equal(users[0], goodUser);
        }
Beispiel #10
0
        public void AnniversaryNotNullable()
        {
            var builder = new WebFilterConverter <User>();

            var goodUser = new User {
                ContractStart = DateTime.Today
            };
            var badUser = new User {
                ContractStart = DateTime.Today.AddDays(1)
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.ContractStart), WebFilterOperand.Anniversary, new List <DateTime?> {
                DateTime.Today
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                goodUser, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Single(users);
            Assert.Equal(users[0], goodUser);
        }
Beispiel #11
0
        public void ContainsAllFilter()
        {
            var builder = new WebFilterConverter <User>();

            var badUser = new User {
                Id = 3
            };
            var badUser2 = new User {
                Id = 2
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.Id), WebFilterOperand.ContainsAll, new List <int> {
                1, 2
            });
            var expression = builder.ToExpression(filter);
            var users = new List <User> {
                badUser2, badUser
            }.AsQueryable().Where(expression).ToList();

            Assert.Empty(users);

            Assert.Throws <QueryBuilderException>(() => builder.ContainsAll(filter.Expression, Enumerable.Range(0, 10000).ToList()));
        }
Beispiel #12
0
        public void LikeOnGuidsShouldWork()
        {
            var goodGuid = Guid.NewGuid();
            var badGuid  = Guid.NewGuid();
            var builder  = new WebFilterConverter <User>();

            var goodUser = new User {
                PictureId = goodGuid
            };
            var badUser = new User {
                PictureId = badGuid
            };

            var filter = new WebFilter <User>(PropertyExpression <User> .New(u => u.PictureId), WebFilterOperand.Like, new List <Guid> {
                goodGuid
            });
            var expression = builder.ToExpression(filter);
            var compiled   = expression.Compile();

            Assert.True(compiled.Invoke(goodUser));
            Assert.False(compiled.Invoke(badUser));

            Assert.Throws <QueryBuilderException>(() => builder.Like(filter.Expression, Enumerable.Range(0, 100000).ToList()));
        }
Beispiel #13
0
 public virtual void VisitWebFilter(WebFilter node)
 {
 }
Beispiel #14
0
        public virtual void VisitItem(Object item)
        {
            if (item == null)
            {
                return;
            }

            Module module = item as Module;

            if (module != null)
            {
                VisitModule(module);
                return;
            }
            Product product = item as Product;

            if (product != null)
            {
                VisitProduct(product);
                return;
            }
            Feature feature = item as Feature;

            if (feature != null)
            {
                VisitFeature(feature);
                return;
            }
            AdvtExecuteSequence advtExecuteSequence = item as AdvtExecuteSequence;

            if (advtExecuteSequence != null)
            {
                VisitAdvtExecuteSequence(advtExecuteSequence);
                return;
            }
            InstallUISequence installUISequence = item as InstallUISequence;

            if (installUISequence != null)
            {
                VisitInstallUISequence(installUISequence);
                return;
            }
            User user = item as User;

            if (user != null)
            {
                VisitUser(user);
                return;
            }
            Upgrade upgrade = item as Upgrade;

            if (upgrade != null)
            {
                VisitUpgrade(upgrade);
                return;
            }
            Directory directory = item as Directory;

            if (directory != null)
            {
                VisitDirectory(directory);
                return;
            }
            PropertyRef propertyRef = item as PropertyRef;

            if (propertyRef != null)
            {
                VisitPropertyRef(propertyRef);
                return;
            }
            WebSite webSite = item as WebSite;

            if (webSite != null)
            {
                VisitWebSite(webSite);
                return;
            }
            AdminUISequence adminUISequence = item as AdminUISequence;

            if (adminUISequence != null)
            {
                VisitAdminUISequence(adminUISequence);
                return;
            }
            CustomAction customAction = item as CustomAction;

            if (customAction != null)
            {
                VisitCustomAction(customAction);
                return;
            }
            DirectoryRef directoryRef = item as DirectoryRef;

            if (directoryRef != null)
            {
                VisitDirectoryRef(directoryRef);
                return;
            }
            AppId appId = item as AppId;

            if (appId != null)
            {
                VisitAppId(appId);
                return;
            }
            Media media = item as Media;

            if (media != null)
            {
                VisitMedia(media);
                return;
            }
            CustomTable customTable = item as CustomTable;

            if (customTable != null)
            {
                VisitCustomTable(customTable);
                return;
            }
            Condition condition = item as Condition;

            if (condition != null)
            {
                VisitCondition(condition);
                return;
            }
            SFPCatalog sFPCatalog = item as SFPCatalog;

            if (sFPCatalog != null)
            {
                VisitSFPCatalog(sFPCatalog);
                return;
            }
            UI ui = item as UI;

            if (ui != null)
            {
                VisitUI(ui);
                return;
            }
            FragmentRef fragmentRef = item as FragmentRef;

            if (fragmentRef != null)
            {
                VisitFragmentRef(fragmentRef);
                return;
            }
            Icon icon = item as Icon;

            if (icon != null)
            {
                VisitIcon(icon);
                return;
            }
            Property property = item as Property;

            if (property != null)
            {
                VisitProperty(property);
                return;
            }
            FeatureRef featureRef = item as FeatureRef;

            if (featureRef != null)
            {
                VisitFeatureRef(featureRef);
                return;
            }
            WebDirProperties webDirProperties = item as WebDirProperties;

            if (webDirProperties != null)
            {
                VisitWebDirProperties(webDirProperties);
                return;
            }
            ComplianceCheck complianceCheck = item as ComplianceCheck;

            if (complianceCheck != null)
            {
                VisitComplianceCheck(complianceCheck);
                return;
            }
            InstallExecuteSequence installExecuteSequence = item as InstallExecuteSequence;

            if (installExecuteSequence != null)
            {
                VisitInstallExecuteSequence(installExecuteSequence);
                return;
            }
            AdminExecuteSequence adminExecuteSequence = item as AdminExecuteSequence;

            if (adminExecuteSequence != null)
            {
                VisitAdminExecuteSequence(adminExecuteSequence);
                return;
            }
            Binary binary = item as Binary;

            if (binary != null)
            {
                VisitBinary(binary);
                return;
            }
            Group group = item as Group;

            if (group != null)
            {
                VisitGroup(group);
                return;
            }
            WebApplication webApplication = item as WebApplication;

            if (webApplication != null)
            {
                VisitWebApplication(webApplication);
                return;
            }
            ActionSequenceType actionSequenceType = item as ActionSequenceType;

            if (actionSequenceType != null)
            {
                VisitActionSequenceType(actionSequenceType);
                return;
            }
            ActionModuleSequenceType actionModuleSequenceType = item as ActionModuleSequenceType;

            if (actionModuleSequenceType != null)
            {
                VisitActionModuleSequenceType(actionModuleSequenceType);
                return;
            }
            BillboardAction billboardAction = item as BillboardAction;

            if (billboardAction != null)
            {
                VisitBillboardAction(billboardAction);
                return;
            }
            Error error = item as Error;

            if (error != null)
            {
                VisitError(error);
                return;
            }
            Dialog dialog = item as Dialog;

            if (dialog != null)
            {
                VisitDialog(dialog);
                return;
            }
            ProgressText progressText = item as ProgressText;

            if (progressText != null)
            {
                VisitProgressText(progressText);
                return;
            }
            TextStyle textStyle = item as TextStyle;

            if (textStyle != null)
            {
                VisitTextStyle(textStyle);
                return;
            }
            ListBox listBox = item as ListBox;

            if (listBox != null)
            {
                VisitListBox(listBox);
                return;
            }
            ListView listView = item as ListView;

            if (listView != null)
            {
                VisitListView(listView);
                return;
            }
            ComboBox comboBox = item as ComboBox;

            if (comboBox != null)
            {
                VisitComboBox(comboBox);
                return;
            }
            UIText uIText = item as UIText;

            if (uIText != null)
            {
                VisitUIText(uIText);
                return;
            }
            RadioGroup radioGroup = item as RadioGroup;

            if (radioGroup != null)
            {
                VisitRadioGroup(radioGroup);
                return;
            }
            IniFileSearch iniFileSearch = item as IniFileSearch;

            if (iniFileSearch != null)
            {
                VisitIniFileSearch(iniFileSearch);
                return;
            }
            RegistrySearch registrySearch = item as RegistrySearch;

            if (registrySearch != null)
            {
                VisitRegistrySearch(registrySearch);
                return;
            }
            ComponentSearch componentSearch = item as ComponentSearch;

            if (componentSearch != null)
            {
                VisitComponentSearch(componentSearch);
                return;
            }
            FileSearch fileSearch = item as FileSearch;

            if (fileSearch != null)
            {
                VisitFileSearch(fileSearch);
                return;
            }
            DirectorySearch directorySearch = item as DirectorySearch;

            if (directorySearch != null)
            {
                VisitDirectorySearch(directorySearch);
                return;
            }
            File file = item as File;

            if (file != null)
            {
                VisitFile(file);
                return;
            }
            Component component = item as Component;

            if (component != null)
            {
                VisitComponent(component);
                return;
            }
            Merge merge = item as Merge;

            if (merge != null)
            {
                VisitMerge(merge);
                return;
            }
            Custom custom = item as Custom;

            if (custom != null)
            {
                VisitCustom(custom);
                return;
            }
            WebError webError = item as WebError;

            if (webError != null)
            {
                VisitWebError(webError);
                return;
            }
            WebVirtualDir webVirtualDir = item as WebVirtualDir;

            if (webVirtualDir != null)
            {
                VisitWebVirtualDir(webVirtualDir);
                return;
            }
            WebDir webDir = item as WebDir;

            if (webDir != null)
            {
                VisitWebDir(webDir);
                return;
            }
            WebFilter webFilter = item as WebFilter;

            if (webFilter != null)
            {
                VisitWebFilter(webFilter);
                return;
            }
            MergeRef mergeRef = item as MergeRef;

            if (mergeRef != null)
            {
                VisitMergeRef(mergeRef);
                return;
            }
            Subscribe subscribe = item as Subscribe;

            if (subscribe != null)
            {
                VisitSubscribe(subscribe);
                return;
            }
            Publish publish = item as Publish;

            if (publish != null)
            {
                VisitPublish(publish);
                return;
            }
            TypeLib typeLib = item as TypeLib;

            if (typeLib != null)
            {
                VisitTypeLib(typeLib);
                return;
            }
            Shortcut shortcut = item as Shortcut;

            if (shortcut != null)
            {
                VisitShortcut(shortcut);
                return;
            }
            ODBCTranslator oDBCTranslator = item as ODBCTranslator;

            if (oDBCTranslator != null)
            {
                VisitODBCTranslator(oDBCTranslator);
                return;
            }
            Permission permission = item as Permission;

            if (permission != null)
            {
                VisitPermission(permission);
                return;
            }
            Class _class = item as Class;

            if (_class != null)
            {
                VisitClass(_class);
                return;
            }
            CopyFile copyFile = item as CopyFile;

            if (copyFile != null)
            {
                VisitCopyFile(copyFile);
                return;
            }
            Patch patch = item as Patch;

            if (patch != null)
            {
                VisitPatch(patch);
                return;
            }
            ODBCDriver oDBCDriver = item as ODBCDriver;

            if (oDBCDriver != null)
            {
                VisitODBCDriver(oDBCDriver);
                return;
            }
            PerfCounter perfCounter = item as PerfCounter;

            if (perfCounter != null)
            {
                VisitPerfCounter(perfCounter);
                return;
            }
            FileShare fileShare = item as FileShare;

            if (fileShare != null)
            {
                VisitFileShare(fileShare);
                return;
            }
            Certificate certificate = item as Certificate;

            if (certificate != null)
            {
                VisitCertificate(certificate);
                return;
            }
            Category category = item as Category;

            if (category != null)
            {
                VisitCategory(category);
                return;
            }
            WebAppPool webAppPool = item as WebAppPool;

            if (webAppPool != null)
            {
                VisitWebAppPool(webAppPool);
                return;
            }
            SqlString sqlString = item as SqlString;

            if (sqlString != null)
            {
                VisitSqlString(sqlString);
                return;
            }
            ServiceControl serviceControl = item as ServiceControl;

            if (serviceControl != null)
            {
                VisitServiceControl(serviceControl);
                return;
            }
            IsolateComponent isolateComponent = item as IsolateComponent;

            if (isolateComponent != null)
            {
                VisitIsolateComponent(isolateComponent);
                return;
            }
            ServiceConfig serviceConfig = item as ServiceConfig;

            if (serviceConfig != null)
            {
                VisitServiceConfig(serviceConfig);
                return;
            }
            WebProperty webProperty = item as WebProperty;

            if (webProperty != null)
            {
                VisitWebProperty(webProperty);
                return;
            }
            SqlScript sqlScript = item as SqlScript;

            if (sqlScript != null)
            {
                VisitSqlScript(sqlScript);
                return;
            }
            SqlDatabase sqlDatabase = item as SqlDatabase;

            if (sqlDatabase != null)
            {
                VisitSqlDatabase(sqlDatabase);
                return;
            }
            WebLockdown webLockdown = item as WebLockdown;

            if (webLockdown != null)
            {
                VisitWebLockdown(webLockdown);
                return;
            }
            Extension extension = item as Extension;

            if (extension != null)
            {
                VisitExtension(extension);
                return;
            }
            ReserveCost reserveCost = item as ReserveCost;

            if (reserveCost != null)
            {
                VisitReserveCost(reserveCost);
                return;
            }
            RemoveFile removeFile = item as RemoveFile;

            if (removeFile != null)
            {
                VisitRemoveFile(removeFile);
                return;
            }
            ProgId progId = item as ProgId;

            if (progId != null)
            {
                VisitProgId(progId);
                return;
            }
            Microsoft.Tools.WindowsInstallerXml.Serialize.Environment environment = item as
                                                                                    Microsoft.Tools.WindowsInstallerXml.Serialize.Environment;
            if (environment != null)
            {
                VisitEnvironment(environment);
                return;
            }
            ServiceInstall serviceInstall = item as ServiceInstall;

            if (serviceInstall != null)
            {
                VisitServiceInstall(serviceInstall);
                return;
            }
            IniFile iniFile = item as IniFile;

            if (iniFile != null)
            {
                VisitIniFile(iniFile);
                return;
            }
            Registry registry = item as Registry;

            if (registry != null)
            {
                VisitRegistry(registry);
                return;
            }
            CreateFolder createFolder = item as CreateFolder;

            if (createFolder != null)
            {
                VisitCreateFolder(createFolder);
                return;
            }
            MIME mIME = item as MIME;

            if (mIME != null)
            {
                VisitMIME(mIME);
                return;
            }
            Verb verb = item as Verb;

            if (verb != null)
            {
                VisitVerb(verb);
                return;
            }
        }