public ParameterCollectionUIOptions(string useCase, ICollectSqlParameters collector, ParameterLevel currentLevel, ParameterManager parameterManager, CreateNewSqlParameterHandler createNewParameterDelegate = null) { UseCase = useCase; Collector = collector; CurrentLevel = currentLevel; ParameterManager = parameterManager; _createNewParameterDelegate = createNewParameterDelegate; if (_createNewParameterDelegate == null) { if (AnyTableSqlParameter.IsSupportedType(collector.GetType())) { _createNewParameterDelegate = CreateNewParameterDefaultImplementation; } } }
public void FindOverridenParameters_OneOnlyTest(ParameterLevel addAt, ParameterLevel overridingLevel) { var myParameter = new ConstantParameter("DECLARE @fish as int", "1", "fishes be here", new MicrosoftQuerySyntaxHelper()); var overridingParameter = new ConstantParameter("DECLARE @fish as int", "999", "overriding value", new MicrosoftQuerySyntaxHelper()); var pm = new ParameterManager(); pm.ParametersFoundSoFarInQueryGeneration[ParameterLevel.TableInfo].Add(myParameter); pm.ParametersFoundSoFarInQueryGeneration[overridingLevel].Add(overridingParameter); var overrides = pm.GetOverridenParameters().ToArray(); Assert.IsNull(pm.GetOverrideIfAnyFor(overridingParameter)); Assert.AreEqual(pm.GetOverrideIfAnyFor(myParameter), overridingParameter); Assert.AreEqual(1, overrides.Length); Assert.AreEqual(myParameter, overrides[0]); var final = pm.GetFinalResolvedParametersList().ToArray(); Assert.AreEqual(1, final.Length); Assert.AreEqual(overridingParameter, final[0]); }
/// <summary> /// Defines that a given parameter was found at a given level during query building. /// </summary> /// <param name="parameter"></param> /// <param name="level"></param> public ParameterFoundAtLevel(ISqlParameter parameter, ParameterLevel level) { Parameter = parameter; Level = level; }
/// <summary> /// Records parameters from the <see cref="ICollectSqlParameters"/> at the specified <see cref="ParameterLevel"/> /// </summary> public void AddParametersFor(ICollectSqlParameters collector, ParameterLevel parameterLevel) { AddParametersFor(collector, ParametersFoundSoFarInQueryGeneration[parameterLevel]); }