public override XDocument FormatInternal(PollResponse response) { var formatted = CreateResponse("EPCISQueryDocument"); var resultName = "EventList"; var resultList = default(IEnumerable<XElement>); if (response.EventList.Any()) { resultName = "EventList"; resultList = XmlEntityFormatter.FormatEvents(response.EventList); } else if (response.MasterdataList.Any()) { resultName = "VocabularyList"; resultList = XmlEntityFormatter.FormatMasterData(response.MasterdataList); } formatted.Root.Add( new XElement("EPCISBody", new XElement(XName.Get("QueryResults", EpcisNamespaces.Query), new XElement("queryName", response.QueryName), !string.IsNullOrEmpty(response.SubscriptionId) ? new XElement("subscriptionID", response.SubscriptionId) : null, new XElement("resultsBody", new XElement(resultName, resultList)) ) ) ); return formatted; }
protected override XDocument FormatInternal(PollResponse response) { var formatted = CreateResponse("EPCISQueryDocument"); var resultName = "EventList"; var typeOfResponse = response.Entities.GetType().GenericTypeArguments[0]; if (typeOfResponse == typeof(EpcisEvent)) { resultName = "EventList"; } if (typeOfResponse == typeof(EpcisMasterData)) { resultName = "VocabularyList"; } formatted.Root.Add( new XElement("EPCISBody", new XElement(XName.Get("QueryResults", EpcisNamespaces.Query), new XElement("queryName", response.QueryName), !string.IsNullOrEmpty(response.SubscriptionId) ? new XElement("subscriptionID", response.SubscriptionId) : null, new XElement("resultsBody", new XElement(resultName, XmlEntityFormatter.Format(response.Entities))) ) ) ); return(formatted); }