Link to home
Start Free TrialLog in
Avatar of Moiz Saifuddin
Moiz Saifuddin

asked on

Xml Reader

I wanted a general Idea on what the code does below, I assume its parsing xml data from an xml file into a database. What do these methods do and why not just use an xml reader to read data instead create these extra ones...


StreamReader
XmlDocument
XmlNodeList

StreamReader
XmlDocument
XmlNodeList

namespace R_and_M_XMLReader
{
    using Cust;
    using Items;
    using SaleOrd;

    class Program
    {
        public void ReadfromXML()
        {
            if (!Directory.Exists(@"E:\Old_R&M_XML_files"))
                Directory.CreateDirectory(@"E:\Old_R&M_XML_files");

            if (Directory.Exists(@"E:\R&M_XML files"))
            {
                Item_Service itm_svc = new Item_Service();
                itm_svc.UseDefaultCredentials = true;
                itm_svc.Url = @"http://absvii.abs.com:7087/DynamicsNAVRnM/WS/R%20&%20%20M/Page/Item";

                DirectoryInfo Item_di = new DirectoryInfo(@"E:\R&M_XML files");
                FileInfo[] Item_files = Item_di.GetFiles(@"*.xml");
                foreach (FileInfo file in Item_files)
                {
                    StreamReader Item_sr = new StreamReader(file.DirectoryName + @"\" + file.Name);
                    XmlDocument ItemXML = new XmlDocument();
                    ItemXML.LoadXml(Item_sr.ReadToEnd());
                    Item_sr.Close();
                    Item itm;
                    XmlNodeList nodelist = ItemXML.SelectNodes("/Items/item");
                    foreach (XmlNode node in nodelist)
                    {
                        string itmnum = String.Empty;
                        try
                        {
                            itm = new Item();
                            itm.No = node["itemNumber"].InnerText;
                            itmnum = itm.No;
                            itm_svc.Create(ref itm);
                            itm.Item_Category_Code = node["productGroup"].InnerText;
                            itm.Product_Group_Code = node["productGroup2"].InnerText;
                            itm.Description = node["articleDescription"].ChildNodes[1].InnerText.Substring(0,30);
                            itm.Business_Product_Group = node["kernelProductGroup"].InnerText;
                            itm.Units_per_Parcel = decimal.Parse(node["packingUnit"].InnerText);
                            itm.Excise_Prod_Posting_Group = node["customsTariffNumber"].InnerText;
                            itm.Country_Region_of_Origin_Code = node["itemProductionCountry"].InnerText;
                            itm.Net_Weight = decimal.Parse(node["netWeight"].InnerText);
                            itm.Minimum_Order_Quantity = decimal.Parse(node["minimumOrderQuantity"].InnerText);
                            itm.Reordering_Policy = Reordering_Policy.Lot_for_Lot;
                            itm.Large_Description = node["articleDescription"].ChildNodes[1].InnerText;
                            itm_svc.Update(ref itm);
                            Console.WriteLine("Item Created Successfully");
                        }
                        catch (Exception ex)
                        {
                            itm_svc.Delete(itmnum);
                            Console.WriteLine(ex.ToString());
                        }
                    }
                }
            }
            #region not used

            //if (Directory.Exists(@"E:\R&M_XML files\Order"))
            //{
            //    DirectoryInfo Ord_di = new DirectoryInfo(@"E:\R&M_XML files\Order");
            //    FileInfo[] Ord_files = Ord_di.GetFiles(@"*.xml");
            //    foreach (FileInfo file in Ord_files)
            //    {
            //        //string OrderXMLstring = String.Empty;
            //        //using (XmlTextReader OrderXMLReader = new XmlTextReader(file.DirectoryName + @"\" + file.Name))
            //        //{
            //        //    SalesOrder_Service SO_service = new SalesOrder_Service();
            //        //    SO_service.UseDefaultCredentials = true;
            //        //    SO_service.Url = @"http://absvii.abs.com:7087/DynamicsNAVRnM/WS/R%20&%20%20M/Page/SalesOrder";
            //        //    while (OrderXMLReader.Read())
            //        //    {
            //        //        switch (OrderXMLReader.NodeType)
            //        //        {
            //        //            case XmlNodeType.Element: // The node is an element.
            //        //                OrderXMLstring += "<" + OrderXMLReader.Name + ">";
            //        //                break;
            //        //            case XmlNodeType.Text: //Display the text in each element.
            //        //                OrderXMLstring += OrderXMLReader.Value;
            //        //                break;
            //        //            case XmlNodeType.EndElement: //Display the end of the element.
            //        //                OrderXMLstring += "</" + OrderXMLReader.Name + ">";
            //        //                break;
            //        //        }
            //        //    }
            //        //}
            //        //file.MoveTo(@"E:\Old_R&M_XML_files\" + file.Name);
            //        StreamReader Ord_sr = new StreamReader(file.DirectoryName + @"\" + file.Name);
            //        XmlDocument OrdXML = new XmlDocument();
            //        OrdXML.LoadXml(Ord_sr.ReadToEnd());
            //        Ord_sr.Close();
            //    }
            //}
            #endregion
        }

        static void Main(string[] args)
        {
            Program pg = new Program();
            pg.ReadfromXML();
        }
    }
}

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Carl Tawn
Carl Tawn
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Moiz Saifuddin
Moiz Saifuddin

ASKER

Following the Second document "BUILD ON CLIENT SIDE" on how to publish a webservice using .NET and Navision i have followed all the step but am receiving a compile time error

I am receiving a sguigly line under "Business_Product_Group", posted a screenshot for that..I dont know if you have any idea on this or not..
Err.docx
Build-on-CLIENTSIDE.docx
Ignore the last comment, my question is will this finally dump all the data into a database or what kind of transaction will it do..