Exemplo n.º 1
0
 /// <summary>
 /// 设置输入参数的绑定方式
 /// </summary>
 /// <param name="sqlApi"></param>
 /// <param name="actionBuilderInfo"></param>
 protected virtual void SetBindFrom(IConfigurationSection sqlApi, ActionBuilderInfo actionBuilderInfo)
 {
     //[FromQuery] - 从查询字符串中获取值。
     //[FromRoute] - 从路由数据中获取值。
     //[FromForm] - 从发布的表单域中获取值。
     //[FromBody] - 从请求正文中获取值。
     //[FromHeader] - 从 HTTP 标头中获取值。
     if (sqlApi.Key.StartsWith("update", StringComparison.OrdinalIgnoreCase) || sqlApi.Key.StartsWith("create", StringComparison.OrdinalIgnoreCase) || sqlApi.Key.StartsWith("put", StringComparison.OrdinalIgnoreCase) || sqlApi.Key.StartsWith("post", StringComparison.OrdinalIgnoreCase))
     {
         actionBuilderInfo.ActionInputInfo.BindFrom = "[FromBody]";
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 从配置中获取或重写输出参数
        /// </summary>
        /// <param name="sqlApi"></param>
        /// <param name="actionBuilderInfo"></param>
        protected virtual void SetActionOutputFieldInfosFromConfig(IConfigurationSection sqlApi, ActionBuilderInfo actionBuilderInfo)
        {
            if (sqlApi.GetSection("Output:Parameter").Exists())
            {
                foreach (var par in sqlApi.GetSection("Output:Parameter").GetChildren())
                {
                    var name = par["Name"];
                    if (string.IsNullOrWhiteSpace(name))
                    {
                        continue;
                    }

                    var type            = par["Type"];
                    var defaultValue    = par["DefaultValue"];
                    var allowNullable   = par["AllowNullable"];
                    var actionFieldInfo = actionBuilderInfo.ActionOutputInfo.ActionFieldInfos.FirstOrDefault(p => p.Name == name);
                    if (actionFieldInfo == null)
                    {
                        actionFieldInfo = new ActionFieldInfo()
                        {
                            Name = name
                        };
                        actionBuilderInfo.ActionOutputInfo.ActionFieldInfos.Add(actionFieldInfo);
                    }

                    if (!string.IsNullOrWhiteSpace(type))
                    {
                        actionFieldInfo.TypeName = type;
                    }

                    if (!string.IsNullOrWhiteSpace(allowNullable))
                    {
                        actionFieldInfo.AllowNullable = Convert.ToBoolean(allowNullable);
                    }

                    if (!string.IsNullOrWhiteSpace(defaultValue))
                    {
                        actionFieldInfo.DefaultValue = defaultValue;
                    }
                }
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 从SQL中提取输入参数
 /// </summary>
 /// <param name="sqlTpl"></param>
 /// <param name="actionBuilderInfo"></param>
 protected virtual void SetActionInputFieldInfosFromSql(string sqlTpl, ActionBuilderInfo actionBuilderInfo) => actionBuilderInfo.ActionInputInfo.ActionFieldInfos = TSqlParser.GetParameters(sqlTpl).Select(p => new ActionFieldInfo()
 {
     TypeName = p.CsTypeName,
     Name     = p.Name?.TrimStart('@')
 }).ToList();
Exemplo n.º 4
0
 /// <summary>
 /// 从SQL语句提取输出字段
 /// </summary>
 /// <param name="sqlTpl"></param>
 /// <param name="actionBuilderInfo"></param>
 protected virtual void SetActionOutputFieldInfosFromSql(string sqlTpl, ActionBuilderInfo actionBuilderInfo) => actionBuilderInfo.ActionOutputInfo.ActionFieldInfos = TSqlParser.GetOutputFieldList(sqlTpl).Select(p => new ActionFieldInfo()
 {
     TypeName      = p.CsTypeName,
     Name          = p.Name,
     AllowNullable = p.AllowNullable,
 }).ToList();