using System;

using System.Linq;

 

namespace TestWebService

{

    class Program

    {

        private const string Username = "username";

        private const string Password = "password";

 

        static private dclcorp.DCLWebService myService = new dclcorp.DCLWebService();

        static private string SessionID = "";

 

        static void Main(string[] args)

        {

            if (string.IsNullOrEmpty(Username) || string.IsNullOrEmpty(Password))

            {

                Console.WriteLine("Please set Username and Password");

                return;

            }

           

            SessionID = myService.Login(Username, Password);

            if (string.IsNullOrEmpty(SessionID))

            {

                Console.WriteLine("Wrong Username/Password");

                return;

            }

            Console.Write("Order Number: ");

            string OrderNumber = Console.ReadLine();

            Console.WriteLine("");

 

            // In this example we ask for all shipments for a specific order number

            // You can ask also for all shipments for a specific ship-date

            dclcorp.ShipConfirmationType01Result Result =

                myService.GetShipConfirmationType01(SessionID, OrderNumber, "");

 

            if (Result.ResultStatus.Error == 0)

            {

                // Update SessionID for next calls (in case)

                SessionID = Result.ResultStatus.SessionID;

 

                // List all shipments for any order

                if (Result.OrderHeaderArray.Count() == 0)

                {

                    // Not an error if not shipments found!

                    Console.WriteLine("No shipments found!");

                }

                else

                {

                    for (int i = 0; i < Result.OrderHeaderArray.Count(); i++)

                    {

                        dclcorp.OrderHeaderType01Object OrderHeader = (dclcorp.OrderHeaderType01Object)Result.OrderHeaderArray[i];

                        Console.WriteLine("  ORDER HEADER");

                        Console.WriteLine("  ------------");

                        Console.WriteLine("  Ship ID = {0}", OrderHeader.ShipID);

                        Console.WriteLine("  Ship Date = {0}", OrderHeader.ShipDate);

                        Console.WriteLine("  Order Number = {0}", OrderHeader.OrderNumber);

                        Console.WriteLine("  PO Number = {0}", OrderHeader.PONumber);

                        Console.WriteLine("  Account Number = {0}", OrderHeader.AccountNumber);

                        Console.WriteLine("  Ship Weight = {0}", OrderHeader.OrderWeight);

                        Console.WriteLine("  Total Charge = {0}", OrderHeader.TotalCharge);

                        Console.WriteLine("  Ship Via = {0}", OrderHeader.ShipVia);

                        Console.WriteLine("  Ship Type = {0}", OrderHeader.ShipType);

                        Console.WriteLine("  Tracking Number = {0}", OrderHeader.TrackingNumber);

                        Console.WriteLine("  Number Of Boxes = {0}", OrderHeader.NumberOfBox);

                        Console.WriteLine("  CustomField1 = {0}", OrderHeader.CustomField1);

                        Console.WriteLine("  CustomField2 = {0}", OrderHeader.CustomField2);

                        Console.WriteLine("  CustomField3 = {0}", OrderHeader.CustomField3);

                        Console.WriteLine("  CustomField4 = {0}", OrderHeader.CustomField4);

                        Console.WriteLine("  CustomField5 = {0}", OrderHeader.CustomField5);

 

                        // List all detail

                        for (int j = 0; j < OrderHeader.OrderDetailArray.Count(); j++)

                        {

                            dclcorp.OrderDetailType01Object Detail = (dclcorp.OrderDetailType01Object)OrderHeader.OrderDetailArray[j];

                            Console.WriteLine("    ORDER DETAIL");

                            Console.WriteLine("    ------------");

                            Console.WriteLine("    Line Number = {0}", Detail.LineNumber);

                            Console.WriteLine("    Part Number = {0}", Detail.PartNumber);

                            Console.WriteLine("    Description = {0}", Detail.Description);

                            Console.WriteLine("    Quantity = {0}", Detail.Quantity);

                            Console.WriteLine("    CustomField1 = {0}", Detail.CustomField1);

                            Console.WriteLine("    CustomField2 = {0}", Detail.CustomField2);

                            Console.WriteLine("    CustomField5 = {0}", Detail.CustomField5);

 

                            // List all serial numbers (if any)

                            if (Detail.SerialNumberArray.Count() > 0)

                            {

                                Console.WriteLine("      SERIAL NUMBERS");

                                Console.WriteLine("      --------------");

                            }

                            for (int k = 0; k < Detail.SerialNumberArray.Count(); k++)

                            {

                                dclcorp.SerialNumberType01Object Serial = (dclcorp.SerialNumberType01Object)Detail.SerialNumberArray[k];

                                Console.WriteLine("      {0}", Serial.SerialNumber);

                            }

                            Console.WriteLine("");

 

                        }

                        Console.WriteLine("");

                    }

                }

            }

            else

            {

                Console.WriteLine("Error number: " + Result.ResultStatus.Error);

                Console.WriteLine("Error message: " + Result.ResultStatus.ErrorStr);

            }

           

            return;

        }

    }

}