public FilterListByNames(List <T> elements, SimpleFilterViewImpl5 filterInput) { this.elements = elements; filter = new FilterImpl <IStringFilterable>(); filter.OnFilterChanged += HandleOnFilterChanged; filter.ConnectRequest(new StringFilterRequest(filterInput)); }
public FilterKey(FilterImpl filter) { var types = filter.FilterDefinition.ParameterTypes; _filterName = filter.Name; foreach (var me in filter.Parameters) { var type = types[me.Key]; _filterParameters[me.Key] = new TypedValue(type, me.Value, filter.GetParameterSpan(me.Key) != null); } }
private void FilterDescLikeToCompare(out FilterKey fk, out FilterKey fk1) { const string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameter("pLike", "%ing"); fk1 = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); }
private void FilterDescValueToCompare(out FilterKey fk, out FilterKey fk1) { const string filterName = "DescriptionEqualAndValueGT"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pDesc", "something").SetParameter("pValue", 10); fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameter("pDesc", "something").SetParameter("pValue", 11); fk1 = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); }
private void FilterDescLikeToCompare(out FilterKey fk, out FilterKey fk1, bool sameValue) { const string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); fk = new FilterKey(f); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameter("pLike", sameValue ? "so%" : "%ing"); fk1 = new FilterKey(f1); }
private void FilterDescValueToCompare(out FilterKey fk, out FilterKey fk1, bool sameValue) { const string filterName = "DescriptionEqualAndValueGT"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pDesc", "something").SetParameter("pValue", 10); fk = new FilterKey(f); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameter("pDesc", "something").SetParameter("pValue", sameValue ? 10 : 11); fk1 = new FilterKey(f1); }
public FilterKey(FilterImpl filter) { var types = filter.FilterDefinition.ParameterTypes; _filterName = filter.Name; _filterParameters = filter.Parameters.Select( p => new KeyValuePair <string, TypedValue>( p.Key, new TypedValue( types[p.Key], p.Value, filter.GetParameterSpan(p.Key) != null))).ToArray(); }
public static void ProcessDynamicFilterParameters( SqlString sqlFragment, IParameterContainer container, HqlSqlWalker walker) { if (walker.EnabledFilters.Count == 0 && (!HasDynamicFilterParam(sqlFragment)) && (!(HasCollectionFilterParam(sqlFragment)))) { return; } Dialect.Dialect dialect = walker.SessionFactoryHelper.Factory.Dialect; string symbols = new StringBuilder().Append(ParserHelper.HqlSeparators) .Append(dialect.OpenQuote) .Append(dialect.CloseQuote) .ToString(); StringTokenizer tokens = new StringTokenizer(sqlFragment.ToString(), symbols, true); StringBuilder result = new StringBuilder(); foreach (string token in tokens) { if (token.StartsWith(ParserHelper.HqlVariablePrefix)) { string filterParameterName = token.Substring(1); string[] parts = StringHelper.ParseFilterParameterName(filterParameterName); FilterImpl filter = ( FilterImpl )walker.EnabledFilters[parts[0]]; Object value = filter.GetParameter(parts[1]); IType type = filter.FilterDefinition.GetParameterType(parts[1]); String typeBindFragment = StringHelper.Join( ",", ArrayHelper.FillArray("?", type.GetColumnSpan(walker.SessionFactoryHelper.Factory)) ); string bindFragment = (value != null && value is ICollection) ? StringHelper.Join(",", ArrayHelper.FillArray(typeBindFragment, (( ICollection )value).Count)) : typeBindFragment; //result.Append( bindFragment ); result.Append(token); container.AddEmbeddedParameter(new DynamicFilterParameterSpecification(parts[0], parts[1], type)); } else { result.Append(token); } } container.Text = result.ToString(); }
public void ToStringIncludeAll() { string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); Assert.That(fk.ToString(), Is.EqualTo("FilterKey[DescriptionLike{'pLike'='so%'}]")); filterName = "DescriptionEqualAndValueGT"; f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pDesc", "something").SetParameter("pValue", 10); fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); Assert.That(fk.ToString(), Is.EqualTo("FilterKey[DescriptionEqualAndValueGT{'pDesc'='something', 'pValue'='10'}]")); }
public void ToStringIncludeAll() { string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(f); Assert.That(fk.ToString(), Is.EqualTo("FilterKey[DescriptionLike['[pLike, so%]']]"), "Like"); filterName = "DescriptionEqualAndValueGT"; f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pDesc", "something").SetParameter("pValue", 10); fk = new FilterKey(f); Assert.That(fk.ToString(), Is.EqualTo("FilterKey[DescriptionEqualAndValueGT['[pDesc, something]', '[pValue, 10]']]"), "Value"); }
private void FilterValueInToCompare(out FilterKey fk, out FilterKey fk1, bool sameValue) { const string filterName = "ValueIn"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameterList("pIn", new HashSet <int> { 10, 11 }); fk = new FilterKey(f); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameterList("pIn", sameValue ? (ICollection <int>) new [] { 10, 11 } : new HashSet <int> { 10, 12 }); fk1 = new FilterKey(f1); }
public void ToStringWithMoreFilters() { string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); filterName = "DescriptionEqualAndValueGT"; var fv = new FilterImpl(Sfi.GetFilterDefinition(filterName)); fv.SetParameter("pDesc", "something").SetParameter("pValue", 10); var fvk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); ISet <FilterKey> fks = new HashSet <FilterKey> { fk, fvk }; var qk = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null); Assert.That(qk.ToString(), Does.Contain(string.Format("filters: ['{0}', '{1}']", fk, fvk))); }
public void ToStringWithMoreFilters() { string filterName = "DescriptionLike"; var f = new FilterImpl(sessions.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes, EntityMode.Poco); filterName = "DescriptionEqualAndValueGT"; var fv = new FilterImpl(sessions.GetFilterDefinition(filterName)); fv.SetParameter("pDesc", "something").SetParameter("pValue", 10); var fvk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes, EntityMode.Poco); ISet <FilterKey> fks = new HashedSet <FilterKey> { fk, fvk }; var qk = new QueryKey(sessions, SqlAll, new QueryParameters(), (ISet)fks); Assert.That(qk.ToString(), Is.StringContaining(string.Format("filters: ['{0}', '{1}']", fk, fvk))); }
private void QueryKeyFilterDescLikeToCompare(out QueryKey qk, out QueryKey qk1) { const string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); ISet <FilterKey> fks = new HashSet <FilterKey> { fk }; qk = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameter("pLike", "%ing"); var fk1 = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); fks = new HashSet <FilterKey> { fk1 }; qk1 = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null); }
private void QueryKeyFilterDescLikeToCompare(out QueryKey qk, out QueryKey qk1) { const string filterName = "DescriptionLike"; var f = new FilterImpl(sessions.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes, EntityMode.Poco); ISet <FilterKey> fks = new HashedSet <FilterKey> { fk }; qk = new QueryKey(sessions, SqlAll, new QueryParameters(), (ISet)fks); var f1 = new FilterImpl(sessions.GetFilterDefinition(filterName)); f1.SetParameter("pLike", "%ing"); var fk1 = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes, EntityMode.Poco); fks = new HashedSet <FilterKey> { fk1 }; qk1 = new QueryKey(sessions, SqlAll, new QueryParameters(), (ISet)fks); }
public void ToStringWithFilters() { string filterName = "DescriptionLike"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pLike", "so%"); var fk = new FilterKey(f); ISet <FilterKey> fks = new HashSet <FilterKey> { fk }; var qk = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null, null); Assert.That(qk.ToString(), Does.Contain($"filters: ['{fk}']"), "Like"); filterName = "DescriptionEqualAndValueGT"; f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pDesc", "something").SetParameter("pValue", 10); fk = new FilterKey(f); fks = new HashSet <FilterKey> { fk }; qk = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null, null); Assert.That(qk.ToString(), Does.Contain($"filters: ['{fk}']"), "Value"); }
private void QueryKeyFilterDescValueToCompare(out QueryKey qk, out QueryKey qk1) { const string filterName = "DescriptionEqualAndValueGT"; var f = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f.SetParameter("pDesc", "something").SetParameter("pValue", 10); var fk = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); ISet <FilterKey> fks = new HashSet <FilterKey> { fk }; qk = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null); var f1 = new FilterImpl(Sfi.GetFilterDefinition(filterName)); f1.SetParameter("pDesc", "something").SetParameter("pValue", 11); var fk1 = new FilterKey(filterName, f.Parameters, f.FilterDefinition.ParameterTypes); fks = new HashSet <FilterKey> { fk1 }; qk1 = new QueryKey(Sfi, SqlAll, new QueryParameters(), fks, null); }
public void TestNullTeamDoesNotMatch() { IProjectFilter f = new FilterImpl(".*", ".*"); Assert.False(f.Matches(null, "foo")); }
public void TestMatch89StyleProjectRightTeam() { IProjectFilter f = new FilterImpl(@"\\usa$", "master"); Assert.True(f.Matches(@"\CxServer\Foo\bar\usa", "ORG_ProjectName_master")); }
public void TestNoMatch89StyleTeam() { IProjectFilter f = new FilterImpl(@"\\usa$", null); Assert.False(f.Matches(@"\CxServer\Foo\bar\uk", null)); }
public void TestNullProjectDoesNotMatch() { IProjectFilter f = new FilterImpl(".*", ".*"); Assert.False(f.Matches("foo", null)); }
public void TestNoMatch89StyleProjectWrongBranch() { IProjectFilter f = new FilterImpl(@"\\usa$", "master"); Assert.False(f.Matches(@"\CxServer\Foo\bar\usa", "ORG_ProjectName_dev")); }
public static void Run(Savegame.Savegame savegame, string filename, ExportAction.Writer.Destinations destination_type, List <FilterDefinition> filters, bool deep_traversal, bool recursive_export) { Writer.IWriter writer = Writer.CreateWriter(destination_type, filename, recursive_export); if (writer == null) { string msg = string.Format(Translate._("Unable to create writer for file\n\n{0}"), filename); MessageBox.Show(msg, Translate._("MainWindow.Title"), MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } try { writer.Open(); } catch (Exception exc) { string msg = string.Format(Translate._("Unable to create writer for file\n\n{0}"), filename) + "\n\n" + exc.ToLongString(); MessageBox.Show(msg, Translate._("MainWindow.Title"), MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } var defs = new F.Definitions(filters.Cast <F.Definition>()); F.CreatorCallback creator = (def) => FilterImpl.CreateFilter(def as FilterDefinition); F.FilterChain chain = F.CreateChain(defs, creator); if (chain == null) { string msg = "Internal error!\n\nUnable to create filter chain."; MessageBox.Show(msg, Translate._("MainWindow.Title"), MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } HierarchyRunner.Runner action; if (chain.Count == 0) { action = (prop) => { // Empty "Export all" filter was passed writer.Write(prop); }; // Also remove deep flag deep_traversal = false; } else { action = (prop) => { // Test property against filter(s) given F.IResult result = chain.Test(prop); // If successful, pass to writer if (result.Success) { writer.Write(prop); } } }; try { HierarchyRunner runner = new HierarchyRunner(savegame, deep_traversal); runner.Run(Translate._("Action.Export.Progress.Title"), action); string msg = string.Format(Translate._("Action.Export.Done"), filename); MessageBox.Show(msg, Translate._("MainWindow.Title")); //, MessageBoxButton.OK, MessageBoxImage.Information); } catch { string msg = "Internal error!\n\nFailure within hierarchy runner."; MessageBox.Show(msg, Translate._("MainWindow.Title"), MessageBoxButton.OK, MessageBoxImage.Exclamation); } finally { writer.Close(); } } }
public void TestBothNullDoesNotMatch() { IProjectFilter f = new FilterImpl(".*", ".*"); Assert.False(f.Matches(null, null)); }
public void TestEmptyProjectRulesMatchTeam() { IProjectFilter f = new FilterImpl(null, ""); Assert.True(f.Matches("", "foo")); }
public void TestEmptyRegexMatchesEmptyString() { IProjectFilter f = new FilterImpl("", ""); Assert.True(f.Matches("", "")); }
public void TestEmptyTeamRulesMatchTeamWithNullProject() { IProjectFilter f = new FilterImpl("", null); Assert.True(f.Matches("foo", null)); }
public void TestNullRulesMatchEmptyBoth() { IProjectFilter f = new FilterImpl(null, null); Assert.True(f.Matches("", "")); }
public void TestNullRulesMatchNullTeam() { IProjectFilter f = new FilterImpl(null, null); Assert.True(f.Matches(null, "foo")); }