コード例 #1
0
ファイル: Common.cs プロジェクト: davelondon/dontstayin
		public HasParametersController(IHasParameters obj)
		{
			this.obj = obj;

			obj.PreRender += new EventHandler(obj_PreRender);
			obj.ParametersHiddenField.ValueChanged += new EventHandler(ParametersHiddenField_ValueChanged);
		}
コード例 #2
0
        public ParameterSegment(Expression value, IHasParameters target)
        {
            m_target    = target;
            m_paramName = $"@p{target.ParametersCount + 1}";
            var val = ExpressionEvaluator.Eval(value);

            m_target.AddParameter(m_paramName, val);
        }
コード例 #3
0
        public static IParameter AddParameter(this IHasParameters parms, string name, string type,
                                              ParamModifier?mod = null)
        {
            var parm = Noast.Create <IParameter>(name);

            parm.Type     = type;
            parm.Modifier = mod.GetValueOrDefault();
            parms.Parameters.Add(parm);
            return(parm);
        }
コード例 #4
0
        private void Validate(IHasParameters holder, IList <IParameter> parms)
        {
            var doubled = parms.GroupBy(p => p.Name).Where(g => g.Count() >= 2);

            foreach (var pair in doubled)
            {
                var index = 0;
                foreach (var parm in pair)
                {
                    var newName = $"{pair.Key}{++index}";
                    parm.Rename(newName);
                }
            }
        }
コード例 #5
0
 static void PatchTypes(IHasParameters parms, string nspName, IEnumerable <string> names)
 {
     foreach (var dparm in parms.Parameters)
     {
         var dparamNsp = dparm.Type.Substring(0, dparm.Type.LastIndexOf('.'));
         if ((apiPrefix + dparamNsp) != nspName)
         {
             continue;
         }
         var dparamName = 'I' + dparm.Type.Substring(dparamNsp.Length).TrimStart('.');
         if (!names.Contains(dparamName))
         {
             continue;
         }
         dparm.Type = $"{nspName}.{dparamName}";
     }
 }
コード例 #6
0
 private static void RewriteMethodBody <TParameter>(MethodBody body, IHasParameters <TParameter> parameters)
     where TParameter : IParameter <AttributeGroup, TypeReference>, IHasModifier <ParameterModifier>
 {
     body.Instructions.Clear();
     if (parameters != null)
     {
         foreach (TParameter parameter in parameters.Parameters)
         {
             if (parameter.Modifier == ParameterModifier.Out)
             {
                 Statement statement = new Statement()
                 {
                     ExpressionStatement = new ExpressionStatement()
                     {
                         Expression = CreateExpressionForOutParameter(parameter)
                     }
                 };
                 body.Statements.Add(statement);
             }
         }
     }
 }
コード例 #7
0
 public static IEnumerable <SyntaxNode> GetParamNodes(this SyntaxGenerator gen, IHasParameters holder)
 => holder.Parameters.OfType <IHasSyntaxNodes>().SelectMany(n => n.GetNodes(gen));
コード例 #8
0
 private static string Serialize(string name, IHasParameters obj)
 {
     return(name + Common.FormatParameters(obj.GetParameters()) + ":" + obj.ToString());
 }
コード例 #9
0
        public IQuerySegment Map(MethodCallExpression expression, ExpressionMapperBase <IQuerySegment> queryMapper, Type resultingTableType, IHasParameters p)
        {
            if (expression.Arguments.Count != 2)
            {
                throw new InvalidOperationException("Two arguments required");
            }

            var l = queryMapper.Map(expression.Arguments[0]);
            var r = queryMapper.Map(expression.Arguments[1]);

            return(new LikeSegment(l, r));
        }
コード例 #10
0
 public static void ClearValues(this IHasParameters ihasPars)
 {
     ihasPars.Pars.ClearDataValues();
 }
コード例 #11
0
 public static void AddWithValue(this IHasParameters ihasPars, string key, ulong value)
 {
     ihasPars.Pars.AddWithValue(key, value);
 }
コード例 #12
0
 public static void AddWithValue(this IHasParameters ihasPars, string key, System.DateTime value)
 {
     ihasPars.Pars.AddWithValue(key, value);
 }
コード例 #13
0
        public IQuerySegment Map(MethodCallExpression expression, ExpressionMapperBase <IQuerySegment> queryMapper, Type resultingTableType, IHasParameters paramTarget)
        {
            var operand = queryMapper.Map(expression.Arguments[0]);

            var builtSubquery = ExpressionEvaluator.Eval(expression.Arguments[1]) as ITransformedQuery;

            return(new InSubquerySegment(operand, builtSubquery.GetQuery(queryMapper, paramTarget)));
        }
コード例 #14
0
ファイル: QueryBuilder.cs プロジェクト: MichalTecl/Robowire
        public IQuerySegment ToSegment(ExpressionMapperBase <IQuerySegment> queryMapper, IHasParameters paramsTarget)
        {
            var model     = Build();
            var queryText = m_owner.GetQueryText(model, this);

            foreach (var p in m_parameters)
            {
                paramsTarget.AddParameter(p.Key, p.Value);
            }

            return(new SubquerySegment(queryText));
        }
コード例 #15
0
        public IQuerySegment Map(MethodCallExpression expression, ExpressionMapperBase <IQuerySegment> queryMapper, Type resultingTableType, IHasParameters paramTarget)
        {
            var subject  = queryMapper.Map(expression.Arguments[0]);
            var itemsLst = ExpressionEvaluator.Eval(expression.Arguments[1]) as IEnumerable;

            return(new InCsvSegment(subject, itemsLst));
        }
コード例 #16
0
 private static void RewriteMethodBody <TParameter>(MethodBody body, TypeReference returnType, IHasParameters <TParameter> parameters)
     where TParameter : IParameter <AttributeGroup, TypeReference>, IHasModifier <ParameterModifier>
 {
     RewriteMethodBody(body, parameters);
     RewriteMethodBody(body, returnType);
 }
コード例 #17
0
 public IQuerySegment GetQuery(ExpressionMapperBase <IQuerySegment> queryMapper, IHasParameters paramsTarget)
 {
     return(m_sourceBuilder.ToSegment(queryMapper, paramsTarget));
 }