public void Lookup(ParameterLookupContext context) { var methodParameters = context.MethodInfo.GetParameters(); Type betweenType = typeof(BetweenParameter); for (int i = 0; i < methodParameters.Length; i++) { var methodParameter = methodParameters[i]; if (methodParameter.ParameterType != betweenType) { continue; } BetweenParameter value = context.Values[i] as BetweenParameter; if (value == null) { return; } string lowerCaseParaNameBegin = string.Format("{0}{1}", methodParameter.Name, Constant.PARAMETER_SUFFIX_BETWEEN_BEGIN).ToLower(); string lowerCaseParaNameEnd = string.Format("{0}{1}", methodParameter.Name, Constant.PARAMETER_SUFFIX_BETWEEN_END).ToLower(); context.Description.Parameters .Where(x => x.Key.ToLower() == lowerCaseParaNameBegin) .First().Value.Value = value.Begin; context.Description.Parameters .Where(x => x.Key.ToLower() == lowerCaseParaNameEnd) .First().Value.Value = value.End; } }
public void Lookup(ParameterLookupContext context) { SqlCommandDescription description = context.Description; MethodInfo methodInfo = context.MethodInfo; object[] values = context.Values; var parameterInfos = methodInfo.GetParameters(); int length = parameterInfos.Length; for (int i = 0; i < length; i++) { var parameterInfo = parameterInfos[i]; var value = values[i]; this.Fill(context.SqlCommandGenerator, description, GetParameterName(parameterInfo), parameterInfo.ParameterType, () => value); } }
public void Lookup(ParameterLookupContext context) { var description = context.Description; var values = context.Values; if (!description.Parameters.ContainsKey(Constant.PARAMETER_NAME_BEGIN_ROW_NUMBER)) { return; } if (!description.Parameters.ContainsKey(Constant.PARAMETER_NAME_END_ROW_NUMBER)) { return; } Paging paging = values.OfType <Paging>().FirstOrDefault(); if (paging == null) { throw new PagingParameterMustBeGivenExpcetion(); } description.Parameters[Constant.PARAMETER_NAME_BEGIN_ROW_NUMBER].Value = paging.PageIndex * paging.PageSize; description.Parameters[Constant.PARAMETER_NAME_END_ROW_NUMBER].Value = (paging.PageIndex + 1) * paging.PageSize; }