Exemplo n.º 1
0
        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);
        }