Example #1
0
        private void AddParaValueHeader(RequestCreContext requestCreContext, ParameterWrapContext parameterWrap, object paraValue)
        {
            if (false == Enable)
            {
                return;
            }
            if (paraValue == null)
            {
                base.AddHeader(requestCreContext, this.Name, "");
                return;
            }

            object pValue;
            string pValueStr = Serial(paraValue);

            if (this.Field != null)
            {
                pValue = this.Field.GetValue(paraValue);
                AddHeader(requestCreContext, this.Name, pValueStr);
                return;
            }
            if (this.Property != null)
            {
                pValue = this.Property.GetValue(paraValue);
                AddHeader(requestCreContext, this.Name, pValueStr);
                return;
            }
            AddHeader(requestCreContext, this.Name, pValueStr);
        }
Example #2
0
        internal void FillPath(RequestCreContext requestCreContext, ParameterWrapContext parameterWrapContext)
        {
            HttpContent httpContext = requestCreContext.httpRequestMessage.Content;
            object      value       = requestCreContext.ParameterValues.Value[parameterWrapContext.Parameter.Position];
            string      valueStr    = parameterWrapContext.Serial(value);

            requestCreContext.FillPath(this.Name, valueStr);
        }
Example #3
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterItem)
 {
     if (TypeReflector.IsComplextClass(parameterItem.Parameter.ParameterType))
     {
         throw new NotSupportedException("暂时不支持复杂类型用于header、pathpara");
     }
     parameterItem.pathParaAttribute = this;
 }
Example #4
0
        internal override HttpContent Bindbody(RequestCreContext requestCreContext)
        {
            StringBuilder stringBuilder = new StringBuilder();

            Newtonsoft.Json.JsonTextWriter jsonWriter = new JsonTextWriter(new StringWriter(stringBuilder));
            jsonWriter.Formatting = Formatting.Indented;
            if (this.parameterWraps.Count == 1)
            {
                ParameterWrapContext parameterWrapContext = this.parameterWraps[0];
                string valueStr = parameterWrapContext.Serial(requestCreContext);
                if (valueStr == null)
                {
                    throw new LarkException("parameter value can not be null!");
                }
                if (string.IsNullOrEmpty(parameterWrapContext.Name) && TypeReflector.IsComplextClass(parameterWrapContext.Parameter.ParameterType))
                {
                    jsonWriter.WriteRaw(valueStr);
                }
                else
                {
                    jsonWriter.WriteStartObject();
                    jsonWriter.WritePropertyName(parameterWrapContext.DataName);
                    if (valueStr != null)
                    {
                        jsonWriter.WriteRawValue(valueStr);
                    }

                    jsonWriter.WriteEndObject();
                }
            }
            else if (this.parameterWraps.Count > 1)
            {
                jsonWriter.WriteStartObject();
                this.parameterWraps.ForEach(x =>
                {
                    jsonWriter.WritePropertyName(x.DataName);
                    object value    = requestCreContext.ParameterValues.Value[x.Parameter.Position];
                    string valueStr = x.Serial(value);
                    if (valueStr != null)
                    {
                        jsonWriter.WriteRawValue(valueStr);
                    }
                });
                jsonWriter.WriteEndObject();
            }
            else
            {
                // output :{}
                jsonWriter.WriteRaw("{}");
            }



            jsonWriter.Flush();
            StringContent stringContent = new StringContent(stringBuilder.ToString(), Encoding.UTF8, "application/json");

            return(stringContent);
        }
Example #5
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterItem)
 {
     if (TypeReflector.IsComplextClass(parameterItem.Parameter.ParameterType))
     {
         throw new NotSupportedException("暂时不支持复杂类型用于header、pathpara");
     }
     if (false == string.IsNullOrEmpty(Value))
     {
         throw new NotSupportedException("对于参数指定Value无效!");
     }
     parameterItem.HeaderAttributes.Add(this);
 }
Example #6
0
        internal void AddParameterQueryString(RequestCreContext requestCreContext, ParameterWrapContext parameterWrap)
        {
            HttpContent httpContext = requestCreContext.httpRequestMessage.Content;
            object      paraValue   = requestCreContext.ParameterValues.Value[parameterWrap.Parameter.Position];

            if (TypeReflector.IsPrivateValue(parameterWrap.Parameter.ParameterType))
            {
                //todo  valueStr :performance problem ?
                string valueStr = parameterWrap.Serial(paraValue);
                parameterWrap.QueryString = this.Name + "=" + valueStr;
                requestCreContext.QueryString.Add(this.Name, valueStr);
            }
            else
            {
                if (Field == null && Property == null)
                {
                    string valueStr = parameterWrap.Serial(paraValue);
                    parameterWrap.QueryString = this.Name + "=" + valueStr;
                    requestCreContext.QueryString.Add(this.Name, valueStr);
                }
                else
                {
                    object value;
                    string queryName = null;
                    if (Field != null)
                    {
                        queryName = Field.Name;
                        value     = Field.GetValue(paraValue);
                    }
                    else if (Property != null)
                    {
                        queryName = Property.Name;
                        value     = Property.GetValue(paraValue);
                    }
                    else
                    {
                        throw new SystemException(nameof(this.Name));
                    }
                    string valueStr = parameterWrap.Serial(value);
                    parameterWrap.QueryString = queryName + "=" + valueStr;
                    requestCreContext.QueryString.Add(queryName, valueStr);
                }
            }
        }
Example #7
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterWrapContext)
 {
     base.SaveToParameterContext(parameterWrapContext);
     parameterWrapContext.SerializeType = SerializeTypes.xml;
 }
Example #8
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterItem)
 {
 }
Example #9
0
 internal void AddPara(ParameterWrapContext parameterWrap)
 {
     parameterWraps.Add(parameterWrap);
 }
Example #10
0
 public ParameterHeaderBind(ParameterWrapContext parameterWrapContext, string name, bool unique) : this(parameterWrapContext)
 {
     Name   = name;
     Unique = unique;
 }
Example #11
0
 internal virtual void SaveToParameterContext(ParameterWrapContext parameterItem)
 {
 }
Example #12
0
 public ParameterHeaderBind(ParameterWrapContext parameterWrapContext, string name, PropertyInfo property, bool unique) : this(parameterWrapContext)
 {
     Name          = name;
     this.Property = property;
     Unique        = unique;
 }
Example #13
0
 public ParameterHeaderBind(ParameterWrapContext parameterWrapContext, string name, FieldInfo field, bool unique) : this(parameterWrapContext)
 {
     Name       = name;
     this.Field = field;
     Unique     = unique;
 }
Example #14
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterItem)
 {
     base.SaveToParameterContext(parameterItem);
     parameterItem.Name = this.Name;
 }
Example #15
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterWrapContext)
 {
     parameterWrapContext.QueryStringAttribute = this;
 }
Example #16
0
 internal override void SaveToParameterContext(ParameterWrapContext parameterItem)
 {
     parameterItem.SerializeType = SerializeTypes.json;
 }
Example #17
0
 public ParameterHeaderBind(ParameterWrapContext parameterWrapContext) : base(HeaderBind.Source.FromParameter)
 {
     this.ParameterWrapContext = parameterWrapContext;
 }