public IEnumerable <XElement> Format(QueryEventResponse eventResponse) { foreach (var @event in eventResponse.Events) { @event.Epcs = eventResponse.Epcs.Where(epc => epc.Event == @event).ToList(); @event.CustomFields = eventResponse.CustomFields.Where(field => field.Event == @event).ToList(); @event.BusinessTransactions = eventResponse.BusinessTransactions.Where(tx => tx.Event == @event).ToList(); @event.SourcesDestinations = eventResponse.SourcesDestinations.Where(tx => tx.Event == @event).ToList(); yield return(Format(@event)); } }
public XDocument FormatPollResponse(string queryName, QueryEventResponse events) { var epcisQueryNamespace = XNamespace.Get("urn:epcglobal:epcis-query:xsd:1"); var formatted = _eventFormatter.Format(events); return(new XDocument(new XDeclaration("1.0", "UTF-8", "yes"), new XElement(epcisQueryNamespace + "QueryResult", new XAttribute(XNamespace.Xmlns + "a", epcisQueryNamespace), new XElement("queryName", queryName), new XElement("resultBody", new XElement("EventList", formatted.ToArray <object>())) ) )); }
public string FormatSubscriptionResponse(Subscription subscription, QueryEventResponse response) { var root = new XElement(XName.Get("EPCISQueryDocument", EpcisQueryNamespace)); root.Add(new XAttribute("creationDate", SystemContext.Clock.Now)); root.Add(new XAttribute("schemaVersion", "1.0")); var body = new XElement("EPCISBody"); var queryResults = new XElement(XName.Get("QueryResults", EpcisQueryNamespace)); queryResults.Add(new XElement("queryName", subscription.QueryName)); queryResults.Add(new XElement("subscriptionID", subscription.Id)); var eventList = new XElement("resultsBody", new XElement("EventList", _eventFormatter.Format(response))); queryResults.Add(eventList); body.Add(queryResults); root.Add(body); return(root.ToString(SaveOptions.DisableFormatting)); }