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); }
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); }
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); } } }