///<summary>A list of fields to extract and return from the _source field</summary> internal static GetRequestParameters _SourceInclude <T>( this GetRequestParameters qs, IEnumerable <Expression <Func <T, object> > > source_include) where T : class { var _source_include = source_include.Select(e => (PropertyPathMarker)e); qs.AddQueryString("_source_include", _source_include); return(qs); }
///<summary>A comma-separated list of fields to return in the response</summary> internal static GetRequestParameters _Fields <T>( this GetRequestParameters qs, IEnumerable <Expression <Func <T, object> > > fields) where T : class { var _fields = fields.Select(e => (PropertyPathMarker)e); qs.AddQueryString("fields", _fields); return(qs); }
XmlDocument GetHelp(string serviceName, string commandName, object commandResult, GetRequestParameters getRequestParameters) { XmlDocument requestParametersXml = new XmlDocument(); requestParametersXml.AppendChild(requestParametersXml.CreateElement(string.Empty, "RequestParameters", string.Empty)); getRequestParameters(ref requestParametersXml); XmlDocument result = new XmlDocument(); XmlElement elementHelp = result.CreateElement(string.Empty, "Help", string.Empty); result.AppendChild(elementHelp); XmlElement elementStep = result.CreateElement(string.Empty, "Step", string.Empty); elementHelp.AppendChild(elementStep); XmlAttribute attributeStepId = result.CreateAttribute(string.Empty, "id", string.Empty); elementStep.Attributes.Append(attributeStepId); XmlText attributeStepIdText = result.CreateTextNode("<id>"); attributeStepId.AppendChild(attributeStepIdText); XmlElement elementCommand = result.CreateElement(string.Empty, "Command", string.Empty); XmlText elementCommandText = result.CreateTextNode(string.Format("{0}.{1}", serviceName, commandName)); elementStep.AppendChild(elementCommand); elementCommand.AppendChild(elementCommandText); XmlElement elementResponse = result.CreateElement(string.Empty, "Response", string.Empty); XmlText elementResponseText = result.CreateTextNode(string.Format("Normal")); elementStep.AppendChild(elementResponse); elementResponse.AppendChild(elementResponseText); elementStep.AppendChild(result.ImportNode(requestParametersXml.DocumentElement, true)); XmlElement elementResponseParameters = result.CreateElement(string.Empty, "ResponseParameters", string.Empty); elementStep.AppendChild(elementResponseParameters); XmlSerializer serializer = new XmlSerializer(commandResult.GetType()); using (StringWriter sw = new StringWriter()) { XmlDocument resultResponseParameters = new XmlDocument(); serializer.Serialize(sw, commandResult); resultResponseParameters.LoadXml(sw.ToString()); elementResponseParameters.AppendChild(result.ImportNode(resultResponseParameters.DocumentElement, true)); } return(result); }
///<summary>A list of fields to extract and return from the _source field</summary> internal static GetRequestParameters _SourceInclude <T>(this GetRequestParameters qs, IEnumerable <Expression <Func <T, object> > > source_include) where T : class => qs.AddQueryString("_source_include", source_include.Select(e => (Field)e));
///<summary>A comma-separated list of stored fields to return in the response</summary> internal static GetRequestParameters _StoredFields <T>(this GetRequestParameters qs, IEnumerable <Expression <Func <T, object> > > stored_fields) where T : class => qs.AddQueryString("stored_fields", stored_fields.Select(e => (Field)e));