示例#1
0
        private static XElement CheckItemsExistence(ItemMapper mapper, XDocument inputXml)
        {
            XDocument dbResultXml = mapper.ExecuteStoredProcedure(StoredProcedure.custom_p_checkItemsExistenceByCode, true, inputXml);

            //Oczekuje kolekcji w postaci <line><id></id><lineNumber></lineNumber></line>

            //dodanie do xml idków
            foreach (var dbElement in dbResultXml.Root.Elements())
            {
                XElement idElement = dbElement.Element(XmlName.Id);
                if (idElement != null && !String.IsNullOrEmpty(idElement.Value))
                {
                    XElement lineNumberElement = dbElement.Element("lineNumber");
                    string   lineNumber        = lineNumberElement != null ? lineNumberElement.Value : String.Empty;
                    XElement srcLineElement    = inputXml.Root.Elements()
                                                 .Where(line => line.Element("LineNumber") != null &&
                                                        line.Element("LineNumber").Value == lineNumber).FirstOrDefault();
                    if (srcLineElement != null)
                    {
                        srcLineElement.Add(new XElement(idElement));
                        srcLineElement.Add(new XElement(dbElement.Element(XmlName.Id)));
                        srcLineElement.Add(new XElement(dbElement.Element("version")));
                        srcLineElement.Add(new XElement(dbElement.Element("unitId")));
                        srcLineElement.Add(new XElement(dbElement.Element("vatRateId")));
                        srcLineElement.Add(new XElement(dbElement.Element("code")));
                        srcLineElement.Add(new XElement(dbElement.Element("name")));
                        srcLineElement.Add(new XElement(dbElement.Element("itemTypeId")));
                        srcLineElement.Add(new XElement(dbElement.Element("defaultPrice")));
                    }
                }
            }

            return(inputXml.Root);
        }