Example #1
0
        public WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderGetResponse RepairOrderGet(WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderGetRequest request)
        {
            WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderGetResponse response = new WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderGetResponse();

            #region v2.WA.v2 - WA.Standard.IF.WebService

            #region RepairOrderGet Request Set

            //Create proxy credential
            NetworkCredential proxycredential = new NetworkCredential(request.TransactionHeader.Username, request.TransactionHeader.Password);

            //Create proxy web service from dms web service with credential
            WA.v2.WS_RepairOrder.RepairOrder proxyws = new WA.v2.WS_RepairOrder.RepairOrder();
            proxyws.Credentials = proxycredential;

            //Create proxy request with repairorderget and transaction
            WA.v2.WS_RepairOrder.RepairOrderGetRequest proxyrequest = new WA.v2.WS_RepairOrder.RepairOrderGetRequest();

            //Create proxy transaction
            WA.v2.WS_RepairOrder.TransactionHeader proxytransactionheader = new WA.v2.WS_RepairOrder.TransactionHeader();
            if (request.TransactionHeader != null)
            {
                #region//TransactionHeader Set
                proxytransactionheader.CountryID = request.TransactionHeader.CountryID;
                proxytransactionheader.DealerID = request.TransactionHeader.DealerID;
                proxytransactionheader.DistributorID = request.TransactionHeader.DistributorID;
                proxytransactionheader.DMSCode = request.TransactionHeader.DMSCode;
                proxytransactionheader.DMSServerUrl = request.TransactionHeader.DMSServerUrl;
                proxytransactionheader.DMSVersion = request.TransactionHeader.DMSVersion;
                proxytransactionheader.DocumentVersion = request.TransactionHeader.DocumentVersion;
                proxytransactionheader.GroupID = request.TransactionHeader.GroupID;
                proxytransactionheader.IneterfaceID = request.TransactionHeader.IneterfaceID;
                proxytransactionheader.Password = request.TransactionHeader.Password;
                proxytransactionheader.PollingToken = request.TransactionHeader.PollingToken;
                proxytransactionheader.RequestPollingToken = request.TransactionHeader.RequestPollingToken;
                proxytransactionheader.RequestType = request.TransactionHeader.RequestType;
                proxytransactionheader.TransactionId = request.TransactionHeader.TransactionId;
                proxytransactionheader.TransactionDateTimeLocal = request.TransactionHeader.TransactionDateTimeLocal;
                proxytransactionheader.TransactionDateTimeUTC = request.TransactionHeader.TransactionDateTimeUTC;
                proxytransactionheader.TransactionType = request.TransactionHeader.TransactionType;
                proxytransactionheader.Username = request.TransactionHeader.Username;
                proxytransactionheader.VenderTrackingCode = request.TransactionHeader.VenderTrackingCode;
                proxyrequest.TransactionHeader = proxytransactionheader;
                proxyws.Url = string.Format("{0}/rtr-atest/ws/RepairOrder.1cws", proxytransactionheader.DMSServerUrl);
                #endregion
            }

            //Create proxy repairorderget
            WA.v2.WS_RepairOrder.RepairOrderGet proxyrepairorderget = new WA.v2.WS_RepairOrder.RepairOrderGet();
            if (request.RepairOrderGet != null)
            {
                #region//RepairOrderGet Set
                proxyrepairorderget.OpenDateTimeFromLocal = request.RepairOrderGet.OpenDateTimeFromLocal;
                proxyrepairorderget.OpenDateTimeToLocal = request.RepairOrderGet.OpenDateTimeToLocal;
                proxyrepairorderget.DMSROID = request.RepairOrderGet.DMSROID;
                proxyrepairorderget.DMSRONo = request.RepairOrderGet.DMSRONo;
                proxyrepairorderget.DMSAppointmentID = request.RepairOrderGet.DMSAppointmentID;
                proxyrepairorderget.DMSAppointmentNo = request.RepairOrderGet.DMSAppointmentNo;
                proxyrepairorderget.DMSROStatus = Map.SetDMSCodeFromWACode(CodeType.DMSROStatus, request.RepairOrderGet.DMSROStatus);
                proxyrepairorderget.LastModifiedDateTimeFromUTC = request.RepairOrderGet.LastModifiedDateTimeFromUTC;
                proxyrepairorderget.LastModifiedDateTimeToUTC = request.RepairOrderGet.LastModifiedDateTimeToUTC;
                proxyrepairorderget.SAEmployeeID = request.RepairOrderGet.SAEmployeeID;
                proxyrepairorderget.SAEmployeeName = request.RepairOrderGet.SAEmployeeName;
                proxyrepairorderget.TCEmployeeID = request.RepairOrderGet.TCEmployeeID;
                proxyrepairorderget.TCEmployeeName = request.RepairOrderGet.TCEmployeeName;
                if (request.RepairOrderGet.Customer != null)
                {
                    WA.v2.WS_RepairOrder.Customer proxycustomer = new WA.v2.WS_RepairOrder.Customer();
                    proxycustomer.DMSCustomerNo = request.RepairOrderGet.Customer.DMSCustomerNo;
                    proxycustomer.LastName = request.RepairOrderGet.Customer.LastName;

                    if (request.RepairOrderGet.Customer.Contacts != null && request.RepairOrderGet.Customer.Contacts.Count > 0)
                    {
                        int cnt = 0;
                        proxycustomer.Contacts = new WA.v2.WS_RepairOrder.Contact[request.RepairOrderGet.Customer.Contacts.Count];
                        foreach (WA.Standard.IF.Data.v2.Common.RepairOrder.Contact contact in request.RepairOrderGet.Customer.Contacts)
                        {
                            WA.v2.WS_RepairOrder.Contact proxycontact = new WA.v2.WS_RepairOrder.Contact();
                            proxycontact.ContactType = Map.SetDMSCodeFromWACode(CodeType.ContactType, contact.ContactType);
                            proxycontact.ContactValue = contact.ContactValue;
                            proxycustomer.Contacts[cnt] = proxycontact;
                            cnt++;
                        }
                    }
                    proxyrepairorderget.Customer = proxycustomer;
                }
                proxyrequest.RepairOrderGet = proxyrepairorderget;
                #endregion
            }

            #endregion

            //Run proxy web method with proxy request
            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS RepairOrderGetRequest XML", proxyrequest);

            WA.v2.WS_RepairOrder.RepairOrderGetResponse proxyresponse = proxyws.RepairOrderGet(proxyrequest);

            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS RepairOrderGetResponse XML", proxyresponse);

            //Mapping with Standard Interface Specification Object
            if (proxyresponse != null)
            {
                if (proxyresponse.TransactionHeader != null)
                {
                    #region//TransactionHeader Set
                    WA.Standard.IF.Data.v2.Common.Common.TransactionHeader transactionheader = new WA.Standard.IF.Data.v2.Common.Common.TransactionHeader();
                    transactionheader.CountryID = proxyresponse.TransactionHeader.CountryID;
                    transactionheader.DealerID = proxyresponse.TransactionHeader.DealerID;
                    transactionheader.DistributorID = proxyresponse.TransactionHeader.DistributorID;
                    transactionheader.DMSCode = proxyresponse.TransactionHeader.DMSCode;
                    transactionheader.DMSServerUrl = proxyresponse.TransactionHeader.DMSServerUrl;
                    transactionheader.DMSVersion = proxyresponse.TransactionHeader.DMSVersion;
                    transactionheader.DocumentVersion = proxyresponse.TransactionHeader.DocumentVersion;
                    transactionheader.GroupID = proxyresponse.TransactionHeader.GroupID;
                    transactionheader.IneterfaceID = proxyresponse.TransactionHeader.IneterfaceID;
                    transactionheader.Password = proxyresponse.TransactionHeader.Password;
                    transactionheader.PollingToken = proxyresponse.TransactionHeader.PollingToken;
                    transactionheader.RequestPollingToken = proxyresponse.TransactionHeader.RequestPollingToken;
                    transactionheader.RequestType = proxyresponse.TransactionHeader.RequestType;
                    transactionheader.TransactionId = proxyresponse.TransactionHeader.TransactionId;
                    transactionheader.TransactionDateTimeLocal = proxyresponse.TransactionHeader.TransactionDateTimeLocal;
                    transactionheader.TransactionDateTimeUTC = proxyresponse.TransactionHeader.TransactionDateTimeUTC;
                    transactionheader.TransactionType = proxyresponse.TransactionHeader.TransactionType;
                    transactionheader.Username = proxyresponse.TransactionHeader.Username;
                    transactionheader.VenderTrackingCode = proxyresponse.TransactionHeader.VenderTrackingCode;
                    response.TransactionHeader = transactionheader;
                    #endregion
                }

                //ResultMessage Set
                if (proxyresponse.ResultMessage != null)
                {
                    response.ResultMessage = GetResultMessageData(proxyresponse.ResultMessage.Code, proxyresponse.ResultMessage.Message);
                }

                if (proxyresponse.Errors != null)
                {
                    //Error List Set
                    foreach (WA.v2.WS_RepairOrder.Error proxyerror in proxyresponse.Errors)
                    {
                        if (response.Errors != null)
                            response.Errors.Add(GetErrorData(proxyerror.Code, proxyerror.Message));
                        else
                            response.Errors = GetErrorDataList(proxyerror.Code, proxyerror.Message);
                    }
                }
                else
                {
                    #region//RepairOrderGetResponse Set

                    if (proxyresponse.RepairOrderDocuments != null && proxyresponse.RepairOrderDocuments.Length > 0)
                    {
                        response.RepairOrderDocuments = new List<WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderDocument>();
                        foreach (WA.v2.WS_RepairOrder.RepairOrderDocument proxyrepairorderdocument in proxyresponse.RepairOrderDocuments)
                        {
                            #region //RepairOrderDocuments Header
                            WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderDocument repairorderdocument = new WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderDocument();
                            repairorderdocument.DMSRODocumentNo = proxyrepairorderdocument.DMSRODocumentNo;
                            repairorderdocument.DMSRODocumentStatus = Map.GetWACodeFromDMSCode(CodeType.RODocumentStatus, proxyrepairorderdocument.DMSRODocumentStatus);
                            #endregion

                            if (proxyrepairorderdocument.RepairOrders != null && proxyrepairorderdocument.RepairOrders.Length > 0)
                            {
                                repairorderdocument.RepairOrders = new List<WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrder>();
                                foreach (WA.v2.WS_RepairOrder.RepairOrder1 proxyrepairorder in proxyrepairorderdocument.RepairOrders)
                                {
                                    #region //RepairOrder Header
                                    WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrder repairorder = new WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrder();
                                    repairorder.CloseDateTimeLocal = proxyrepairorder.CloseDateTimeLocal;
                                    repairorder.DeliveryDateTimeLocal = proxyrepairorder.DeliveryDateTimeLocal;
                                    repairorder.Description = proxyrepairorder.Description;
                                    repairorder.DMSROID = proxyrepairorder.DMSROID;
                                    repairorder.DMSRONo = proxyrepairorder.DMSRONo;
                                    repairorder.DMSROStatus = Map.GetWACodeFromDMSCode(CodeType.DMSROStatus, proxyrepairorder.DMSROStatus);
                                    repairorder.HangTagColor = proxyrepairorder.HangTagColor;
                                    repairorder.HangTagNo = proxyrepairorder.HangTagNo;
                                    repairorder.InMileage = proxyrepairorder.InMileage;
                                    repairorder.OpenDateTimeLocal = proxyrepairorder.OpenDateTimeLocal;
                                    repairorder.OutMileage = proxyrepairorder.OutMileage;
                                    repairorder.PaymentMethod = Map.GetWACodeFromDMSCode(CodeType.PaymentMethod, proxyrepairorder.PaymentMethod);
                                    repairorder.ROChannel = Map.GetWACodeFromDMSCode(CodeType.ROChannel, proxyrepairorder.ROChannel);
                                    repairorder.SAEmployeeID = proxyrepairorder.SAEmployeeID;
                                    repairorder.SAEmployeeName = proxyrepairorder.SAEmployeeName;
                                    repairorder.ServiceType = Map.GetWACodeFromDMSCode(CodeType.ServiceType, proxyrepairorder.ServiceType);
                                    repairorder.TCEmployeeID = proxyrepairorder.TCEmployeeID;
                                    repairorder.TCEmployeeName = proxyrepairorder.TCEmployeeName;
                                    repairorder.WorkType = Map.GetWACodeFromDMSCode(CodeType.WorkType, proxyrepairorder.WorkType);
                                    #endregion

                                    #region//RepairOrder CustomerParts
                                    if (proxyrepairorder.CustomerParts != null && proxyrepairorder.CustomerParts.Length > 0)
                                    {
                                        repairorder.CustomerParts = new List<WA.Standard.IF.Data.v2.Common.RepairOrder.CustomerPart>();
                                        foreach (WA.v2.WS_RepairOrder.CustomerPart proxycustomerpart in proxyrepairorder.CustomerParts)
                                        {
                                            WA.Standard.IF.Data.v2.Common.RepairOrder.CustomerPart customerpart = new WA.Standard.IF.Data.v2.Common.RepairOrder.CustomerPart();
                                            customerpart.Comment = proxycustomerpart.Comment;
                                            customerpart.PartDescription = proxycustomerpart.PartDescription;
                                            customerpart.PartNumber = proxycustomerpart.PartNumber;
                                            customerpart.Quantity = proxycustomerpart.Quantity;
                                            customerpart.UnitOfMeasure = proxycustomerpart.UnitOfMeasure;
                                            repairorder.CustomerParts.Add(customerpart);
                                        }
                                    }
                                    #endregion

                                    #region //RepairOrder AdditionalFields
                                    if (proxyrepairorder.AdditionalFields != null && proxyrepairorder.AdditionalFields.Length > 0)
                                    {
                                        repairorder.AdditionalFields = new List<WA.Standard.IF.Data.v2.Common.Common.AdditionalField>();
                                        foreach (WA.v2.WS_RepairOrder.AdditionalField proxyadditionalfield in proxyrepairorder.AdditionalFields)
                                        {
                                            WA.Standard.IF.Data.v2.Common.Common.AdditionalField additionalfield = new WA.Standard.IF.Data.v2.Common.Common.AdditionalField();
                                            additionalfield.AdditionalFieldName = proxyadditionalfield.AdditionalFieldName;
                                            additionalfield.AdditionalFieldValue = proxyadditionalfield.AdditionalFieldValue;
                                            repairorder.AdditionalFields.Add(additionalfield);
                                        }
                                    }
                                    #endregion

                                    #region//RepairOrder JobRefs
                                    if (proxyrepairorder.JobRefs != null && proxyrepairorder.JobRefs.Length > 0)
                                    {
                                        repairorder.JobRefs = new List<WA.Standard.IF.Data.v2.Common.Common.JobRef>();
                                        foreach (WA.v2.WS_RepairOrder.JobRef proxyjobref in proxyrepairorder.JobRefs)
                                        {
                                            WA.Standard.IF.Data.v2.Common.Common.JobRef jobref = new WA.Standard.IF.Data.v2.Common.Common.JobRef();
                                            jobref.DMSJobNo = proxyjobref.DMSJobNo;
                                            jobref.DMSJobStatus = Map.GetWACodeFromDMSCode(CodeType.DMSJobStatus, proxyjobref.DMSJobStatus);
                                            repairorder.JobRefs.Add(jobref);
                                        }
                                    }
                                    #endregion

                                    #region//RepairOrder ManagementFields
                                    if (proxyrepairorder.ManagementFields != null)
                                    {
                                        WA.Standard.IF.Data.v2.Common.Common.ManagementFields managementfields = new WA.Standard.IF.Data.v2.Common.Common.ManagementFields();
                                        managementfields.CreateDateTimeUTC = proxyrepairorder.ManagementFields.CreateDateTimeUTC;
                                        managementfields.LastModifiedDateTimeUTC = proxyrepairorder.ManagementFields.LastModifiedDateTimeUTC;
                                        repairorder.ManagementFields = managementfields;
                                    }
                                    #endregion

                                    #region//RepairOrder Options
                                    if (proxyrepairorder.Options != null && proxyrepairorder.Options.Length > 0)
                                    {
                                        repairorder.Options = new List<WA.Standard.IF.Data.v2.Common.Common.Option>();
                                        foreach (WA.v2.WS_RepairOrder.Option proxyoption in proxyrepairorder.Options)
                                        {
                                            WA.Standard.IF.Data.v2.Common.Common.Option option = new WA.Standard.IF.Data.v2.Common.Common.Option();
                                            option.OptionName = proxyoption.OptionName;
                                            option.OptionValue = proxyoption.OptionValue;
                                            repairorder.Options.Add(option);
                                        }
                                    }
                                    #endregion

                                    #region//RepairOrder PriceType
                                    if (proxyrepairorder.PriceType != null)
                                    {
                                        WA.Standard.IF.Data.v2.Common.Common.PriceType pricetype = new WA.Standard.IF.Data.v2.Common.Common.PriceType();
                                        pricetype.DiscountPrice = proxyrepairorder.PriceType.DiscountPrice;
                                        pricetype.DiscountRate = proxyrepairorder.PriceType.DiscountRate;
                                        pricetype.TotalPrice = proxyrepairorder.PriceType.TotalPrice;
                                        pricetype.TotalPriceIncludeTax = proxyrepairorder.PriceType.TotalPriceIncludeTax;
                                        pricetype.UnitPrice = proxyrepairorder.PriceType.UnitPrice;
                                    }
                                    #endregion

                                    #region//RepairOrder AppointmentRef
                                    if (proxyrepairorder.AppointmentRef != null)
                                    {
                                        WA.Standard.IF.Data.v2.Common.Common.AppointmentRef appointmentref = new WA.Standard.IF.Data.v2.Common.Common.AppointmentRef();
                                        appointmentref.DMSAppointmentID = proxyrepairorder.AppointmentRef.DMSAppointmentID;
                                        appointmentref.DMSAppointmentNo = proxyrepairorder.AppointmentRef.DMSAppointmentNo;
                                        appointmentref.DMSAppointmentStatus = Map.GetWACodeFromDMSCode(CodeType.DMSAppointmentStatus, proxyrepairorder.AppointmentRef.DMSAppointmentStatus);
                                        repairorder.AppointmentRef = appointmentref;
                                    }
                                    #endregion

                                    #region//RepairOrder Customers
                                    if (proxyrepairorder.Customers != null && proxyrepairorder.Customers.Length > 0)
                                    {
                                        repairorder.Customers = new List<WA.Standard.IF.Data.v2.Common.Customer.Customer>();
                                        foreach (WA.v2.WS_RepairOrder.Customer1 proxycustomer in proxyrepairorder.Customers)
                                        {
                                            #region//RepairOrder Customer Header
                                            WA.Standard.IF.Data.v2.Common.Customer.Customer customer = new WA.Standard.IF.Data.v2.Common.Customer.Customer();
                                            customer.CardNo = proxycustomer.CardNo;
                                            customer.CorporateInfos = customer.CorporateInfos;
                                            customer.CustomerInfoType = Map.GetWACodeFromDMSCode(CodeType.CustomerInfoType, proxycustomer.CustomerInfoType);
                                            customer.DMSCustomerNo = proxycustomer.DMSCustomerNo;
                                            customer.Email = proxycustomer.Email;
                                            customer.FirstName = proxycustomer.FirstName;
                                            customer.FullName = proxycustomer.FullName;
                                            customer.Gender = Map.GetWACodeFromDMSCode(CodeType.Gender, proxycustomer.Gender);
                                            customer.LastName = proxycustomer.LastName;
                                            customer.MiddleName = proxycustomer.MiddleName;
                                            customer.Salutation = proxycustomer.Salutation;
                                            #endregion

                                            #region//RepairOrder Customer Addresses
                                            if (proxycustomer.Addresses != null && proxycustomer.Addresses.Length > 0)
                                            {
                                                customer.Addresses = new List<WA.Standard.IF.Data.v2.Common.Customer.Address>();
                                                foreach (WA.v2.WS_RepairOrder.Address proxyaddress in proxycustomer.Addresses)
                                                {
                                                    WA.Standard.IF.Data.v2.Common.Customer.Address address = new WA.Standard.IF.Data.v2.Common.Customer.Address();
                                                    address.AddressType = Map.GetWACodeFromDMSCode(CodeType.AddressType, proxyaddress.AddressType);
                                                    address.City = proxyaddress.City;
                                                    address.District = proxyaddress.District;
                                                    address.Flat = proxyaddress.Flat;
                                                    address.FullAddress = proxyaddress.FullAddress;
                                                    address.House = proxyaddress.House;
                                                    address.Housing = proxyaddress.Housing;
                                                    address.Locality = proxyaddress.Locality;
                                                    address.Region = proxyaddress.Region;
                                                    address.Street = proxyaddress.Street;
                                                    address.ZipCode = proxyaddress.ZipCode;
                                                    customer.Addresses.Add(address);
                                                }
                                            }
                                            #endregion

                                            #region//RepairOrder Customer Contacts
                                            if (proxycustomer.Contacts != null && proxycustomer.Contacts.Length > 0)
                                            {
                                                customer.Contacts = new List<WA.Standard.IF.Data.v2.Common.Customer.Contact>();
                                                foreach (WA.v2.WS_RepairOrder.Contact1 proxycontact in proxycustomer.Contacts)
                                                {
                                                    WA.Standard.IF.Data.v2.Common.Customer.Contact contact = new WA.Standard.IF.Data.v2.Common.Customer.Contact();
                                                    contact.ContactMethodYN = proxycontact.ContactMethodYN;
                                                    contact.ContactType = Map.GetWACodeFromDMSCode(CodeType.ContactType, proxycontact.ContactType);
                                                    contact.ContactValue = proxycontact.ContactValue;
                                                    customer.Contacts.Add(contact);
                                                }
                                            }
                                            #endregion

                                            #region//RepairOrder Customer SpecialMessage
                                            if (proxycustomer.SpecialMessage != null)
                                            {
                                                WA.Standard.IF.Data.v2.Common.Customer.SpecialMessage specialmessage = new WA.Standard.IF.Data.v2.Common.Customer.SpecialMessage();
                                                specialmessage.Message = proxycustomer.SpecialMessage.Message;
                                                customer.SpecialMessage = specialmessage;
                                            }
                                            #endregion

                                            #region//RepairOrder Customer CorporateInfos
                                            if (proxycustomer.CorporateInfos != null && proxycustomer.CorporateInfos.Length > 0)
                                            {
                                                customer.CorporateInfos = new List<WA.Standard.IF.Data.v2.Common.Customer.CorporateInfo>();
                                                foreach (WA.v2.WS_RepairOrder.CorporateInfo proxycorporateinfo in proxycustomer.CorporateInfos)
                                                {
                                                    WA.Standard.IF.Data.v2.Common.Customer.CorporateInfo corporateinfo = new WA.Standard.IF.Data.v2.Common.Customer.CorporateInfo();
                                                    corporateinfo.CorporateInfoName = proxycorporateinfo.CorporateInfoName;
                                                    corporateinfo.CorporateInfoValue = proxycorporateinfo.CorporateInfoValue;
                                                    customer.CorporateInfos.Add(corporateinfo);
                                                }
                                            }
                                            #endregion

                                            repairorder.Customers.Add(customer);
                                        }
                                    }
                                    #endregion

                                    #region//RepairOrder Vehicle
                                    if (proxyrepairorder.Vehicle != null)
                                    {
                                        if (proxyrepairorder.Vehicle != null)
                                        {
                                            #region//RepairOrder Vehicle Header
                                            WA.Standard.IF.Data.v2.Common.Vehicle.Vehicle vehicle = new WA.Standard.IF.Data.v2.Common.Vehicle.Vehicle();
                                            vehicle.Color = proxyrepairorder.Vehicle.Color;
                                            vehicle.Cylinders = proxyrepairorder.Vehicle.Cylinders;
                                            vehicle.DateDelivered = proxyrepairorder.Vehicle.DateDelivered;
                                            vehicle.DateInService = proxyrepairorder.Vehicle.DateInService;
                                            vehicle.DeclinedJob = proxyrepairorder.Vehicle.DeclinedJob;
                                            vehicle.DisplayDescription = proxyrepairorder.Vehicle.DisplayDescription;
                                            vehicle.DMSVehicleNo = proxyrepairorder.Vehicle.DMSVehicleNo;
                                            vehicle.EngineNo = proxyrepairorder.Vehicle.EngineNo;
                                            vehicle.EngineType = proxyrepairorder.Vehicle.EngineType;
                                            vehicle.ExtendedWarranty = proxyrepairorder.Vehicle.ExtendedWarranty;
                                            vehicle.ExtendedWarrantyExpireDate = proxyrepairorder.Vehicle.ExtendedWarrantyExpireDate;
                                            vehicle.FuelType = proxyrepairorder.Vehicle.FuelType;
                                            vehicle.FullModelName = proxyrepairorder.Vehicle.FullModelName;
                                            vehicle.InsuranceDate = proxyrepairorder.Vehicle.InsuranceDate;
                                            vehicle.LastMileage = proxyrepairorder.Vehicle.LastMileage;
                                            vehicle.LastServiceDate = proxyrepairorder.Vehicle.LastServiceDate;
                                            vehicle.LastSixVIN = proxyrepairorder.Vehicle.LastSixVIN;
                                            vehicle.LicenseNumber = proxyrepairorder.Vehicle.LicenseNumber;
                                            vehicle.LicensePlateNo = proxyrepairorder.Vehicle.LicensePlateNo;
                                            vehicle.Make = proxyrepairorder.Vehicle.Make;
                                            vehicle.ModelCode = proxyrepairorder.Vehicle.ModelCode;
                                            vehicle.ModelName = proxyrepairorder.Vehicle.ModelName;
                                            vehicle.ModelYear = proxyrepairorder.Vehicle.ModelYear;
                                            vehicle.PendingJob = proxyrepairorder.Vehicle.PendingJob;
                                            vehicle.StockNumber = proxyrepairorder.Vehicle.StockNumber;
                                            vehicle.Trim = proxyrepairorder.Vehicle.Trim;
                                            vehicle.VehicleType = Map.GetWACodeFromDMSCode(CodeType.VehicleType, proxyrepairorder.Vehicle.VehicleType);
                                            vehicle.VIN = proxyrepairorder.Vehicle.VIN;
                                            vehicle.WarrantyMiles = proxyrepairorder.Vehicle.WarrantyMiles;
                                            vehicle.WarrantyMonths = proxyrepairorder.Vehicle.WarrantyMonths;
                                            vehicle.WarrantyStartDate = proxyrepairorder.Vehicle.WarrantyStartDate;
                                            #endregion

                                            #region//RepairOrder Vehicle Campaigns
                                            if (proxyrepairorder.Vehicle.Campaigns != null && proxyrepairorder.Vehicle.Campaigns.Length > 0)
                                            {
                                                vehicle.Campaigns = new List<WA.Standard.IF.Data.v2.Common.Vehicle.Campaign>();
                                                foreach (WA.v2.WS_RepairOrder.Campaign proxycampaign in proxyrepairorder.Vehicle.Campaigns)
                                                {
                                                    WA.Standard.IF.Data.v2.Common.Vehicle.Campaign campaign = new WA.Standard.IF.Data.v2.Common.Vehicle.Campaign();
                                                    campaign.CampaignDescription = proxycampaign.CampaignDescription;
                                                    campaign.CampaignID = proxycampaign.CampaignID;
                                                    campaign.CampaignPerformed = proxycampaign.CampaignPerformed;
                                                    vehicle.Campaigns.Add(campaign);
                                                }
                                            }
                                            #endregion

                                            repairorder.Vehicle = vehicle;
                                        }
                                    }
                                    #endregion

                                    #region//RepairOrder RequestItems
                                    if (proxyrepairorder.RequestItems != null && proxyrepairorder.RequestItems.Length > 0)
                                    {
                                        repairorder.RequestItems = new List<WA.Standard.IF.Data.v2.Common.Common.RequestItem>();
                                        foreach (WA.v2.WS_RepairOrder.RequestItem proxyrequestitem in proxyrepairorder.RequestItems)
                                        {
                                            #region//RepairOrder RequestItem Header
                                            WA.Standard.IF.Data.v2.Common.Common.RequestItem requestitem = new WA.Standard.IF.Data.v2.Common.Common.RequestItem();
                                            requestitem.CPSIND = proxyrequestitem.CPSIND;
                                            requestitem.RequestCode = proxyrequestitem.RequestCode;
                                            requestitem.RequestDescription = proxyrequestitem.RequestDescription;
                                            requestitem.ServiceLineNumber = proxyrequestitem.ServiceLineNumber;
                                            requestitem.ServiceLineStatus = Map.GetWACodeFromDMSCode(CodeType.ServiceLineStatus, proxyrequestitem.ServiceLineStatus);
                                            requestitem.ServiceType = Map.GetWACodeFromDMSCode(CodeType.ServiceType, proxyrequestitem.ServiceType);
                                            requestitem.TCEmployeeID = proxyrequestitem.TCEmployeeID;
                                            requestitem.TCEmployeeName = proxyrequestitem.TCEmployeeName;
                                            requestitem.WorkType = Map.GetWACodeFromDMSCode(CodeType.WorkType, proxyrequestitem.WorkType);
                                            #endregion

                                            #region//RepairOrder RequestItem Comments
                                            if (proxyrequestitem.Comments != null && proxyrequestitem.Comments.Length > 0)
                                            {
                                                requestitem.Comments = new List<WA.Standard.IF.Data.v2.Common.Common.Comment>();
                                                foreach (WA.v2.WS_RepairOrder.Comment proxycomment in proxyrequestitem.Comments)
                                                {
                                                    WA.Standard.IF.Data.v2.Common.Common.Comment comment = new WA.Standard.IF.Data.v2.Common.Common.Comment();
                                                    comment.DescriptionComment = proxycomment.DescriptionComment;
                                                    comment.SequenceNumber = proxycomment.SequenceNumber;
                                                    requestitem.Comments.Add(comment);
                                                }
                                            }
                                            #endregion

                                            #region//RepairOrder RequestItem Descriptions
                                            if (proxyrequestitem.Descriptions != null && proxyrequestitem.Descriptions.Length > 0)
                                            {
                                                requestitem.Descriptions = new List<WA.Standard.IF.Data.v2.Common.Common.Description>();
                                                foreach (WA.v2.WS_RepairOrder.Description proxydescription in proxyrequestitem.Descriptions)
                                                {
                                                    WA.Standard.IF.Data.v2.Common.Common.Description description = new WA.Standard.IF.Data.v2.Common.Common.Description();
                                                    description.DescriptionComment = proxydescription.DescriptionComment;
                                                    description.SequenceNumber = proxydescription.SequenceNumber;
                                                    requestitem.Descriptions.Add(description);
                                                }
                                            }
                                            #endregion

                                            #region//RepairOrder RequestItem OPCodes
                                            if (proxyrequestitem.OPCodes != null && proxyrequestitem.OPCodes.Length > 0)
                                            {
                                                requestitem.OPCodes = new List<WA.Standard.IF.Data.v2.Common.Common.OPCode>();
                                                foreach (WA.v2.WS_RepairOrder.OPCode proxyopcode in proxyrequestitem.OPCodes)
                                                {
                                                    #region//RepairOrder RequestItem OPCode Header
                                                    WA.Standard.IF.Data.v2.Common.Common.OPCode opcode = new WA.Standard.IF.Data.v2.Common.Common.OPCode();
                                                    opcode.ActualHours = proxyopcode.ActualHours;
                                                    opcode.Code = proxyopcode.Code;
                                                    opcode.Description = proxyopcode.Description;
                                                    opcode.EstimatedHours = proxyopcode.EstimatedHours;
                                                    opcode.OPCodeType = Map.GetWACodeFromDMSCode(CodeType.OPCodeType, proxyopcode.OPCodeType);
                                                    opcode.Quantity = proxyopcode.Quantity;
                                                    opcode.SequenceNumber = proxyopcode.SequenceNumber;
                                                    opcode.ServiceType = Map.GetWACodeFromDMSCode(CodeType.ServiceType, proxyopcode.ServiceType);
                                                    opcode.SkillLevel = proxyopcode.SkillLevel;
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode Descriptions
                                                    if (proxyopcode.Descriptions != null && proxyopcode.Descriptions.Length > 0)
                                                    {
                                                        opcode.Descriptions = new List<WA.Standard.IF.Data.v2.Common.Common.Description>();
                                                        foreach (WA.v2.WS_RepairOrder.Description proxydescription in proxyopcode.Descriptions)
                                                        {
                                                            WA.Standard.IF.Data.v2.Common.Common.Description description = new WA.Standard.IF.Data.v2.Common.Common.Description();
                                                            description.DescriptionComment = proxydescription.DescriptionComment;
                                                            description.SequenceNumber = proxydescription.SequenceNumber;
                                                            opcode.Descriptions.Add(description);
                                                        }
                                                    }
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode Causes
                                                    if (proxyopcode.Causes != null && proxyopcode.Causes.Length > 0)
                                                    {
                                                        opcode.Causes = new List<WA.Standard.IF.Data.v2.Common.Common.Cause>();
                                                        foreach (WA.v2.WS_RepairOrder.Cause proxycause in proxyopcode.Causes)
                                                        {
                                                            WA.Standard.IF.Data.v2.Common.Common.Cause cause = new WA.Standard.IF.Data.v2.Common.Common.Cause();
                                                            cause.CauseLaborOpCode = proxycause.CauseLaborOpCode;
                                                            cause.Comment = proxycause.Comment;
                                                            cause.SequenceNumber = proxycause.SequenceNumber;
                                                            opcode.Causes.Add(cause);
                                                        }
                                                    }
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode Corrections
                                                    if (proxyopcode.Corrections != null && proxyopcode.Corrections.Length > 0)
                                                    {
                                                        opcode.Corrections = new List<WA.Standard.IF.Data.v2.Common.Common.Correction>();
                                                        foreach (WA.v2.WS_RepairOrder.Correction proxycorrection in proxyopcode.Corrections)
                                                        {
                                                            WA.Standard.IF.Data.v2.Common.Common.Correction correction = new WA.Standard.IF.Data.v2.Common.Common.Correction();
                                                            correction.CorrectionLaborOpCode = proxycorrection.CorrectionLaborOpCode;
                                                            correction.Comment = proxycorrection.Comment;
                                                            correction.SequenceNumber = proxycorrection.SequenceNumber;
                                                            opcode.Corrections.Add(correction);
                                                        }
                                                    }
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode PriceType
                                                    if (proxyopcode.PriceType != null)
                                                    {
                                                        WA.Standard.IF.Data.v2.Common.Common.PriceType pricetype = new WA.Standard.IF.Data.v2.Common.Common.PriceType();
                                                        pricetype.DiscountPrice = proxyopcode.PriceType.DiscountPrice;
                                                        pricetype.DiscountRate = proxyopcode.PriceType.DiscountRate;
                                                        pricetype.TotalPrice = proxyopcode.PriceType.TotalPrice;
                                                        pricetype.TotalPriceIncludeTax = proxyopcode.PriceType.TotalPriceIncludeTax;
                                                        pricetype.UnitPrice = proxyopcode.PriceType.UnitPrice;
                                                        opcode.PriceType = pricetype;
                                                    }
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode Parts
                                                    if (proxyopcode.Parts != null && proxyopcode.Parts.Length > 0)
                                                    {
                                                        opcode.Parts = new List<WA.Standard.IF.Data.v2.Common.Common.Part>();
                                                        foreach (WA.v2.WS_RepairOrder.Part proxypart in proxyopcode.Parts)
                                                        {
                                                            #region//RepairOrder RequestItem OPCode Parts Header
                                                            WA.Standard.IF.Data.v2.Common.Common.Part part = new WA.Standard.IF.Data.v2.Common.Common.Part();
                                                            part.DisplayPartNumber = proxypart.DisplayPartNumber;
                                                            part.PartDescription = proxypart.PartDescription;
                                                            part.PartNumber = proxypart.PartNumber;
                                                            part.PartType = Map.GetWACodeFromDMSCode(CodeType.PartType, proxypart.PartType);
                                                            part.Quantity = proxypart.Quantity;
                                                            part.SequenceNumber = proxypart.SequenceNumber;
                                                            part.ServiceType = Map.GetWACodeFromDMSCode(CodeType.ServiceType, proxypart.ServiceType);
                                                            part.StockQuantity = proxypart.StockQuantity;
                                                            part.StockStatus = proxypart.StockStatus;
                                                            part.UnitOfMeasure = proxypart.UnitOfMeasure;
                                                            #endregion

                                                            #region//RepairOrder RequestItem OPCode Parts Descriptions
                                                            if (proxypart.Descriptions != null && proxypart.Descriptions.Length > 0)
                                                            {
                                                                part.Descriptions = new List<WA.Standard.IF.Data.v2.Common.Common.Description>();
                                                                foreach (WA.v2.WS_RepairOrder.Description proxydescription in proxypart.Descriptions)
                                                                {
                                                                    WA.Standard.IF.Data.v2.Common.Common.Description description = new WA.Standard.IF.Data.v2.Common.Common.Description();
                                                                    description.DescriptionComment = proxydescription.DescriptionComment;
                                                                    description.SequenceNumber = proxydescription.SequenceNumber;
                                                                    part.Descriptions.Add(description);
                                                                }
                                                            }
                                                            #endregion

                                                            #region//RepairOrder RequestItem OPCode Parts PriceType
                                                            if (proxypart.PriceType != null)
                                                            {
                                                                WA.Standard.IF.Data.v2.Common.Common.PriceType pricetype = new WA.Standard.IF.Data.v2.Common.Common.PriceType();
                                                                pricetype.DiscountPrice = proxypart.PriceType.DiscountPrice;
                                                                pricetype.DiscountRate = proxypart.PriceType.DiscountRate;
                                                                pricetype.TotalPrice = proxypart.PriceType.TotalPrice;
                                                                pricetype.TotalPriceIncludeTax = proxypart.PriceType.TotalPriceIncludeTax;
                                                                pricetype.UnitPrice = proxypart.PriceType.UnitPrice;
                                                                part.PriceType = pricetype;
                                                            }
                                                            #endregion

                                                            opcode.Parts.Add(part);
                                                        }
                                                    }
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode Sublets
                                                    if (proxyopcode.Sublets != null && proxyopcode.Sublets.Length > 0)
                                                    {
                                                        opcode.Sublets = new List<WA.Standard.IF.Data.v2.Common.Common.Sublet>();
                                                        foreach (WA.v2.WS_RepairOrder.Sublet proxysublet in proxyopcode.Sublets)
                                                        {
                                                            #region//RepairOrder RequestItem OPCode Sublet Header
                                                            WA.Standard.IF.Data.v2.Common.Common.Sublet sublet = new WA.Standard.IF.Data.v2.Common.Common.Sublet();
                                                            sublet.SequenceNumber = proxysublet.SequenceNumber;
                                                            sublet.ServiceType = Map.GetWACodeFromDMSCode(CodeType.ServiceType, proxysublet.ServiceType);
                                                            #endregion

                                                            #region//RepairOrder RequestItem OPCode Sublets Descriptions
                                                            if (proxysublet.Descriptions != null && proxysublet.Descriptions.Length > 0)
                                                            {
                                                                sublet.Descriptions = new List<WA.Standard.IF.Data.v2.Common.Common.Description>();
                                                                foreach (WA.v2.WS_RepairOrder.Description proxydescription in proxysublet.Descriptions)
                                                                {
                                                                    WA.Standard.IF.Data.v2.Common.Common.Description description = new WA.Standard.IF.Data.v2.Common.Common.Description();
                                                                    description.DescriptionComment = proxydescription.DescriptionComment;
                                                                    description.SequenceNumber = proxydescription.SequenceNumber;
                                                                    sublet.Descriptions.Add(description);
                                                                }
                                                            }
                                                            #endregion

                                                            #region//RepairOrder RequestItem OPCode Sublets PriceType
                                                            if (proxysublet.PriceType != null)
                                                            {
                                                                WA.Standard.IF.Data.v2.Common.Common.PriceType pricetype = new WA.Standard.IF.Data.v2.Common.Common.PriceType();
                                                                pricetype.DiscountPrice = proxysublet.PriceType.DiscountPrice;
                                                                pricetype.DiscountRate = proxysublet.PriceType.DiscountRate;
                                                                pricetype.TotalPrice = proxysublet.PriceType.TotalPrice;
                                                                pricetype.TotalPriceIncludeTax = proxysublet.PriceType.TotalPriceIncludeTax;
                                                                pricetype.UnitPrice = proxysublet.PriceType.UnitPrice;
                                                                sublet.PriceType = pricetype;
                                                            }
                                                            #endregion

                                                            opcode.Sublets.Add(sublet);
                                                        }
                                                    }
                                                    #endregion

                                                    #region//RepairOrder RequestItem OPCode MISCs
                                                    if (proxyopcode.MISCs != null && proxyopcode.MISCs.Length > 0)
                                                    {
                                                        opcode.MISCs = new List<WA.Standard.IF.Data.v2.Common.Common.MISC>();
                                                        foreach (WA.v2.WS_RepairOrder.MISC proxymisc in proxyopcode.MISCs)
                                                        {
                                                            #region//RepairOrder RequestItem OPCode MISC Header
                                                            WA.Standard.IF.Data.v2.Common.Common.MISC misc = new WA.Standard.IF.Data.v2.Common.Common.MISC();
                                                            misc.SequenceNumber = proxymisc.SequenceNumber;
                                                            misc.ServiceType = Map.GetWACodeFromDMSCode(CodeType.ServiceType, proxymisc.ServiceType);
                                                            #endregion

                                                            #region//RepairOrder RequestItem OPCode MISCs Descriptions
                                                            if (proxymisc.Descriptions != null && proxymisc.Descriptions.Length > 0)
                                                            {
                                                                misc.Descriptions = new List<WA.Standard.IF.Data.v2.Common.Common.Description>();
                                                                foreach (WA.v2.WS_RepairOrder.Description proxydescription in proxymisc.Descriptions)
                                                                {
                                                                    WA.Standard.IF.Data.v2.Common.Common.Description description = new WA.Standard.IF.Data.v2.Common.Common.Description();
                                                                    description.DescriptionComment = proxydescription.DescriptionComment;
                                                                    description.SequenceNumber = proxydescription.SequenceNumber;
                                                                    misc.Descriptions.Add(description);
                                                                }
                                                            }
                                                            #endregion

                                                            #region//RepairOrder RequestItem OPCode MISCs PriceType
                                                            if (proxymisc.PriceType != null)
                                                            {
                                                                WA.Standard.IF.Data.v2.Common.Common.PriceType pricetype = new WA.Standard.IF.Data.v2.Common.Common.PriceType();
                                                                pricetype.DiscountPrice = proxymisc.PriceType.DiscountPrice;
                                                                pricetype.DiscountRate = proxymisc.PriceType.DiscountRate;
                                                                pricetype.TotalPrice = proxymisc.PriceType.TotalPrice;
                                                                pricetype.TotalPriceIncludeTax = proxymisc.PriceType.TotalPriceIncludeTax;
                                                                pricetype.UnitPrice = proxymisc.PriceType.UnitPrice;
                                                                misc.PriceType = pricetype;
                                                            }
                                                            #endregion

                                                            opcode.MISCs.Add(misc);
                                                        }
                                                    }
                                                    #endregion

                                                    requestitem.OPCodes.Add(opcode);
                                                }
                                            }
                                            #endregion

                                            repairorder.RequestItems.Add(requestitem);
                                        }
                                    }
                                    #endregion

                                    repairorderdocument.RepairOrders.Add(repairorder);
                                }
                            }
                            response.RepairOrderDocuments.Add(repairorderdocument);
                        }
                    }
                    else
                    {
                        response.ResultMessage = GetResultMessageData(WA.Standard.IF.Data.v2.Common.Common.ResponseCode.NoResult, WA.Standard.IF.Data.v2.Common.Common.ResponseMessage.NoResult);
                    }
                    #endregion
                }
            }
            #endregion

            return response;
        }
Example #2
0
        public WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeResponse RepairOrderChange(WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeRequest request)
        {
            WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeResponse response = new WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeResponse();

            #region v2.WA.v2 - WA.Standard.IF.WebService

            #region RepairOrderChange Request Set

            //Create proxy credential
            NetworkCredential proxycredential = new NetworkCredential(request.TransactionHeader.Username, request.TransactionHeader.Password);

            //Create proxy web service from dms web service with credential
            WA.v2.WS_RepairOrder.RepairOrder proxyws = new WA.v2.WS_RepairOrder.RepairOrder();
            proxyws.Credentials = proxycredential;

            //Create proxy request with repairorderchange and transaction
            WA.v2.WS_RepairOrder.RepairOrderChangeRequest proxyrequest = new WA.v2.WS_RepairOrder.RepairOrderChangeRequest();

            //Create proxy transaction
            WA.v2.WS_RepairOrder.TransactionHeader2 proxytransactionheader = new WA.v2.WS_RepairOrder.TransactionHeader2();
            if (request.TransactionHeader != null)
            {
                #region//TransactionHeader Set
                proxytransactionheader.CountryID = request.TransactionHeader.CountryID;
                proxytransactionheader.DealerID = request.TransactionHeader.DealerID;
                proxytransactionheader.DistributorID = request.TransactionHeader.DistributorID;
                proxytransactionheader.DMSCode = request.TransactionHeader.DMSCode;
                proxytransactionheader.DMSServerUrl = request.TransactionHeader.DMSServerUrl;
                proxytransactionheader.DMSVersion = request.TransactionHeader.DMSVersion;
                proxytransactionheader.DocumentVersion = request.TransactionHeader.DocumentVersion;
                proxytransactionheader.GroupID = request.TransactionHeader.GroupID;
                proxytransactionheader.IneterfaceID = request.TransactionHeader.IneterfaceID;
                proxytransactionheader.Password = request.TransactionHeader.Password;
                proxytransactionheader.PollingToken = request.TransactionHeader.PollingToken;
                proxytransactionheader.RequestPollingToken = request.TransactionHeader.RequestPollingToken;
                proxytransactionheader.RequestType = request.TransactionHeader.RequestType;
                proxytransactionheader.TransactionId = request.TransactionHeader.TransactionId;
                proxytransactionheader.TransactionDateTimeLocal = request.TransactionHeader.TransactionDateTimeLocal;
                proxytransactionheader.TransactionDateTimeUTC = request.TransactionHeader.TransactionDateTimeUTC;
                proxytransactionheader.TransactionType = request.TransactionHeader.TransactionType;
                proxytransactionheader.Username = request.TransactionHeader.Username;
                proxytransactionheader.VenderTrackingCode = request.TransactionHeader.VenderTrackingCode;
                proxyrequest.TransactionHeader = proxytransactionheader;
                proxyws.Url = string.Format("{0}/rtr-atest/ws/RepairOrder.1cws", proxytransactionheader.DMSServerUrl);
                #endregion
            }

            //Create proxy repairorderchange
            WA.v2.WS_RepairOrder.RepairOrderChange proxyrepairorderchange = new WA.v2.WS_RepairOrder.RepairOrderChange();
            if (request.RepairOrderChange != null)
            {
                #region//RepairOrder Header
                proxyrepairorderchange.CloseDateTimeLocal = request.RepairOrderChange.CloseDateTimeLocal;
                proxyrepairorderchange.DeliveryDateTimeLocal = request.RepairOrderChange.DeliveryDateTimeLocal;
                proxyrepairorderchange.DMSROID = request.RepairOrderChange.DMSROID;
                proxyrepairorderchange.DMSRONo = string.IsNullOrEmpty(request.RepairOrderChange.DMSRONo) ? string.Empty : request.RepairOrderChange.DMSRONo;
                proxyrepairorderchange.DMSROStatus = Map.SetDMSCodeFromWACode(CodeType.DMSROStatus, request.RepairOrderChange.DMSROStatus);
                proxyrepairorderchange.HangTagColor = request.RepairOrderChange.HangTagColor;
                proxyrepairorderchange.HangTagNo = request.RepairOrderChange.HangTagNo;
                proxyrepairorderchange.HangTagNo = request.RepairOrderChange.HangTagNo;
                proxyrepairorderchange.OpenDateTimeLocal = request.RepairOrderChange.OpenDateTimeLocal;
                proxyrepairorderchange.InMileage = request.RepairOrderChange.InMileage;
                proxyrepairorderchange.OutMileage = request.RepairOrderChange.OutMileage;
                proxyrepairorderchange.PaymentMethod = Map.SetDMSCodeFromWACode(CodeType.PaymentMethod, request.RepairOrderChange.PaymentMethod);
                proxyrepairorderchange.ROChannel = Map.SetDMSCodeFromWACode(CodeType.ROChannel, request.RepairOrderChange.ROChannel);
                proxyrepairorderchange.SAEmployeeID = request.RepairOrderChange.SAEmployeeID;
                proxyrepairorderchange.SAEmployeeName = request.RepairOrderChange.SAEmployeeName;
                proxyrepairorderchange.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, request.RepairOrderChange.ServiceType);
                proxyrepairorderchange.TCEmployeeID = request.RepairOrderChange.TCEmployeeID;
                proxyrepairorderchange.TCEmployeeName = request.RepairOrderChange.TCEmployeeName;
                proxyrepairorderchange.WorkType = Map.SetDMSCodeFromWACode(CodeType.WorkType, request.RepairOrderChange.WorkType);
                proxyrepairorderchange.Description = request.RepairOrderChange.Description;
                #endregion

                #region//RepairOrder AppointmentRef
                if (request.RepairOrderChange.AppointmentRef != null)
                {
                    WA.v2.WS_RepairOrder.AppointmentRef1 proxyappointmentref = new WA.v2.WS_RepairOrder.AppointmentRef1();
                    proxyappointmentref.DMSAppointmentNo = request.RepairOrderChange.AppointmentRef.DMSAppointmentNo;
                    proxyappointmentref.DMSAppointmentStatus = Map.SetDMSCodeFromWACode(CodeType.DMSAppointmentStatus, request.RepairOrderChange.AppointmentRef.DMSAppointmentStatus);
                    proxyrepairorderchange.AppointmentRef = proxyappointmentref;
                }
                #endregion

                #region//RepairOrder CustomerParts
                if (request.RepairOrderChange.CustomerParts != null && request.RepairOrderChange.CustomerParts.Count > 0)
                {
                    int customerpartscnt = 0;
                    WA.v2.WS_RepairOrder.CustomerPart1[] proxycustomerparts = new WA.v2.WS_RepairOrder.CustomerPart1[request.RepairOrderChange.CustomerParts.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.RepairOrder.CustomerPart customerpart in request.RepairOrderChange.CustomerParts)
                    {
                        WA.v2.WS_RepairOrder.CustomerPart1 proxycustomerpart = new WA.v2.WS_RepairOrder.CustomerPart1();
                        proxycustomerpart.Comment = customerpart.Comment;
                        proxycustomerpart.PartDescription = customerpart.PartDescription;
                        proxycustomerpart.PartNumber = customerpart.PartNumber;
                        proxycustomerpart.Quantity = customerpart.Quantity;
                        proxycustomerpart.UnitOfMeasure = customerpart.UnitOfMeasure;
                        proxycustomerparts[customerpartscnt] = proxycustomerpart;
                        customerpartscnt++;
                    }
                }
                #endregion

                #region //RepairOrder AdditionalFields
                if (request.RepairOrderChange.AdditionalFields != null && request.RepairOrderChange.AdditionalFields.Count > 0)
                {
                    int additionalfieldscnt = 0;
                    WA.v2.WS_RepairOrder.AdditionalField1[] proxyadditionalfields = new WA.v2.WS_RepairOrder.AdditionalField1[request.RepairOrderChange.AdditionalFields.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Common.AdditionalField additionalfield in request.RepairOrderChange.AdditionalFields)
                    {
                        WA.v2.WS_RepairOrder.AdditionalField1 proxyadditionalfield = new WA.v2.WS_RepairOrder.AdditionalField1();
                        proxyadditionalfield.AdditionalFieldName = additionalfield.AdditionalFieldName;
                        proxyadditionalfield.AdditionalFieldValue = additionalfield.AdditionalFieldValue;
                        proxyadditionalfields[additionalfieldscnt] = proxyadditionalfield;
                        additionalfieldscnt++;
                    }
                    proxyrepairorderchange.AdditionalFields = proxyadditionalfields;
                }
                #endregion

                #region//RepairOrder Options
                if (request.RepairOrderChange.Options != null && request.RepairOrderChange.Options.Count > 0)
                {
                    int optionscnt = 0;
                    WA.v2.WS_RepairOrder.Option1[] proxyoptions = new WA.v2.WS_RepairOrder.Option1[request.RepairOrderChange.Options.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Common.Option option in request.RepairOrderChange.Options)
                    {
                        WA.v2.WS_RepairOrder.Option1 proxyoption = new WA.v2.WS_RepairOrder.Option1();
                        proxyoption.OptionName = option.OptionName;
                        proxyoption.OptionValue = option.OptionValue;
                        proxyoptions[optionscnt] = proxyoption;
                        optionscnt++;
                    }
                    proxyrepairorderchange.Options = proxyoptions;
                }
                #endregion

                #region//RepairOrder PriceType
                if (request.RepairOrderChange.PriceType != null)
                {
                    WA.v2.WS_RepairOrder.PriceType1 proxypricetype = new WA.v2.WS_RepairOrder.PriceType1();
                    proxypricetype.DiscountPrice = request.RepairOrderChange.PriceType.DiscountPrice;
                    proxypricetype.DiscountRate = request.RepairOrderChange.PriceType.DiscountRate;
                    proxypricetype.TotalPrice = request.RepairOrderChange.PriceType.TotalPrice;
                    proxypricetype.TotalPriceIncludeTax = request.RepairOrderChange.PriceType.TotalPriceIncludeTax;
                    proxypricetype.UnitPrice = request.RepairOrderChange.PriceType.UnitPrice;
                    proxyrepairorderchange.PriceType = proxypricetype;
                }
                #endregion

                #region//RepairOrder Customers
                if (request.RepairOrderChange.Customers != null && request.RepairOrderChange.Customers.Count > 0)
                {
                    int customerscnt = 0;
                    WA.v2.WS_RepairOrder.Customer2[] proxycustomers = new WA.v2.WS_RepairOrder.Customer2[request.RepairOrderChange.Customers.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Customer.Customer customer in request.RepairOrderChange.Customers)
                    {
                        #region//RepairOrder Customer Header
                        WA.v2.WS_RepairOrder.Customer2 proxycustomer = new WA.v2.WS_RepairOrder.Customer2();
                        proxycustomer.CardNo = customer.CardNo;
                        proxycustomer.CustomerInfoType = Map.SetDMSCodeFromWACode(CodeType.CustomerInfoType, customer.CustomerInfoType);
                        proxycustomer.DMSCustomerNo = customer.DMSCustomerNo;
                        proxycustomer.Email = customer.Email;
                        proxycustomer.FirstName = customer.FirstName;
                        proxycustomer.FullName = customer.FullName;
                        proxycustomer.Gender = Map.SetDMSCodeFromWACode(CodeType.Gender, customer.Gender);
                        proxycustomer.LastName = customer.LastName;
                        proxycustomer.MiddleName = customer.MiddleName;
                        proxycustomer.Salutation = customer.Salutation;
                        #endregion

                        #region//RepairOrder Customer Addresses
                        if (customer.Addresses != null && customer.Addresses.Count > 0)
                        {
                            int addressescnt = 0;
                            WA.v2.WS_RepairOrder.Address1[] proxyaddresses = new WA.v2.WS_RepairOrder.Address1[customer.Addresses.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Customer.Address address in customer.Addresses)
                            {
                                WA.v2.WS_RepairOrder.Address1 proxyaddress = new WA.v2.WS_RepairOrder.Address1();
                                address.AddressType = Map.SetDMSCodeFromWACode(CodeType.AddressType, proxyaddress.AddressType);
                                address.City = proxyaddress.City;
                                address.District = proxyaddress.District;
                                address.Flat = proxyaddress.Flat;
                                address.FullAddress = proxyaddress.FullAddress;
                                address.House = proxyaddress.House;
                                address.Housing = proxyaddress.Housing;
                                address.Locality = proxyaddress.Locality;
                                address.Region = proxyaddress.Region;
                                address.Street = proxyaddress.Street;
                                address.ZipCode = proxyaddress.ZipCode;
                                proxyaddresses[addressescnt] = proxyaddress;
                                addressescnt++;
                            }
                            proxycustomer.Addresses = proxyaddresses;
                        }
                        #endregion

                        #region//RepairOrder Customer Contacts
                        if (customer.Contacts != null && customer.Contacts.Count > 0)
                        {
                            int contactscnt = 0;
                            WA.v2.WS_RepairOrder.Contact2[] proxycontacts = new WA.v2.WS_RepairOrder.Contact2[customer.Contacts.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Customer.Contact contact in customer.Contacts)
                            {
                                WA.v2.WS_RepairOrder.Contact2 proxycontact = new WA.v2.WS_RepairOrder.Contact2();
                                proxycontact.ContactMethodYN = contact.ContactMethodYN;
                                proxycontact.ContactType = Map.SetDMSCodeFromWACode(CodeType.ContactType, contact.ContactType);
                                proxycontact.ContactValue = contact.ContactValue;
                                proxycontacts[contactscnt] = proxycontact;
                                contactscnt++;
                            }
                            proxycustomer.Contacts = proxycontacts;
                        }
                        #endregion

                        #region//RepairOrder Customer SpecialMessage
                        if (customer.SpecialMessage != null)
                        {
                            WA.v2.WS_RepairOrder.SpecialMessage1 proxyspecialmessage = new WA.v2.WS_RepairOrder.SpecialMessage1();
                            proxyspecialmessage.Message = customer.SpecialMessage.Message;
                            proxycustomer.SpecialMessage = proxyspecialmessage;
                        }
                        #endregion

                        #region//RepairOrder Customer CorporateInfos
                        if (customer.CorporateInfos != null && customer.CorporateInfos.Count > 0)
                        {
                            int corporateinfoscnt = 0;
                            WA.v2.WS_RepairOrder.CorporateInfo1[] proxycorporateinfos = new WA.v2.WS_RepairOrder.CorporateInfo1[customer.CorporateInfos.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Customer.CorporateInfo corporateinfo in customer.CorporateInfos)
                            {
                                WA.v2.WS_RepairOrder.CorporateInfo1 proxycorporateinfo = new WA.v2.WS_RepairOrder.CorporateInfo1();
                                proxycorporateinfo.CorporateInfoName = corporateinfo.CorporateInfoName;
                                proxycorporateinfo.CorporateInfoValue = corporateinfo.CorporateInfoValue;
                                proxycorporateinfos[corporateinfoscnt] = proxycorporateinfo;
                                corporateinfoscnt++;
                            }
                            proxycustomer.CorporateInfos = proxycorporateinfos;
                        }
                        #endregion

                        proxycustomers[customerscnt] = proxycustomer;
                    }
                    proxyrepairorderchange.Customers = proxycustomers;
                }
                #endregion

                #region//RepairOrder Vehicle
                if (request.RepairOrderChange.Vehicle != null)
                {
                    #region//RepairOrder Vehicle Header
                    WA.v2.WS_RepairOrder.Vehicle2 proxyvehicle = new WA.v2.WS_RepairOrder.Vehicle2();
                    proxyvehicle.Color = request.RepairOrderChange.Vehicle.Color;
                    proxyvehicle.Cylinders = request.RepairOrderChange.Vehicle.Cylinders;
                    proxyvehicle.DateDelivered = request.RepairOrderChange.Vehicle.DateDelivered;
                    proxyvehicle.DateInService = request.RepairOrderChange.Vehicle.DateInService;
                    proxyvehicle.DeclinedJob = request.RepairOrderChange.Vehicle.DeclinedJob;
                    proxyvehicle.DisplayDescription = request.RepairOrderChange.Vehicle.DisplayDescription;
                    proxyvehicle.DMSVehicleNo = request.RepairOrderChange.Vehicle.DMSVehicleNo;
                    proxyvehicle.EngineType = request.RepairOrderChange.Vehicle.EngineType;
                    proxyvehicle.ExtendedWarranty = request.RepairOrderChange.Vehicle.ExtendedWarranty;
                    proxyvehicle.FuelType = request.RepairOrderChange.Vehicle.FuelType;
                    proxyvehicle.FullModelName = request.RepairOrderChange.Vehicle.FullModelName;
                    proxyvehicle.InsuranceDate = request.RepairOrderChange.Vehicle.InsuranceDate;
                    proxyvehicle.LastMileage = request.RepairOrderChange.Vehicle.LastMileage;
                    proxyvehicle.LastServiceDate = request.RepairOrderChange.Vehicle.LastServiceDate;
                    proxyvehicle.LastSixVIN = request.RepairOrderChange.Vehicle.LastSixVIN;
                    proxyvehicle.LicenseNumber = request.RepairOrderChange.Vehicle.LicenseNumber;
                    proxyvehicle.LicensePlateNo = request.RepairOrderChange.Vehicle.LicensePlateNo;
                    proxyvehicle.Make = request.RepairOrderChange.Vehicle.Make;
                    proxyvehicle.ModelCode = request.RepairOrderChange.Vehicle.ModelCode;
                    proxyvehicle.ModelName = request.RepairOrderChange.Vehicle.ModelName;
                    proxyvehicle.ModelYear = request.RepairOrderChange.Vehicle.ModelYear;
                    proxyvehicle.PendingJob = request.RepairOrderChange.Vehicle.PendingJob;
                    proxyvehicle.StockNumber = request.RepairOrderChange.Vehicle.StockNumber;
                    proxyvehicle.Trim = request.RepairOrderChange.Vehicle.Trim;
                    proxyvehicle.VehicleType = Map.SetDMSCodeFromWACode(CodeType.VehicleType, request.RepairOrderChange.Vehicle.VehicleType);
                    proxyvehicle.VIN = request.RepairOrderChange.Vehicle.VIN;
                    proxyvehicle.WarrantyMiles = request.RepairOrderChange.Vehicle.WarrantyMiles;
                    proxyvehicle.WarrantyMonths = request.RepairOrderChange.Vehicle.WarrantyMonths;
                    proxyvehicle.WarrantyStartDate = request.RepairOrderChange.Vehicle.WarrantyStartDate;
                    #endregion

                    #region//RepairOrder Vehicle Campaigns
                    if (request.RepairOrderChange.Vehicle.Campaigns != null && request.RepairOrderChange.Vehicle.Campaigns.Count > 0)
                    {
                        int campaignscnt = 0;
                        WA.v2.WS_RepairOrder.Campaign1[] proxycampaigns = new WA.v2.WS_RepairOrder.Campaign1[request.RepairOrderChange.Vehicle.Campaigns.Count];
                        foreach (WA.Standard.IF.Data.v2.Common.Vehicle.Campaign campaign in request.RepairOrderChange.Vehicle.Campaigns)
                        {
                            WA.v2.WS_RepairOrder.Campaign1 proxycampaign = new WA.v2.WS_RepairOrder.Campaign1();
                            proxycampaign.CampaignDescription = campaign.CampaignDescription;
                            proxycampaign.CampaignID = campaign.CampaignID;
                            proxycampaign.CampaignPerformed = campaign.CampaignPerformed;
                            proxycampaigns[campaignscnt] = proxycampaign;
                            campaignscnt++;
                        }
                        proxyvehicle.Campaigns = proxycampaigns;
                    }
                    #endregion

                    proxyrepairorderchange.Vehicle = proxyvehicle;
                }
                #endregion

                #region//RepairOrder RequestItems
                if (request.RepairOrderChange.RequestItems != null && request.RepairOrderChange.RequestItems.Count > 0)
                {
                    int requestitemscnt = 0;
                    WA.v2.WS_RepairOrder.RequestItem1[] proxyrequestitems = new WA.v2.WS_RepairOrder.RequestItem1[request.RepairOrderChange.RequestItems.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Common.RequestItem requestitem in request.RepairOrderChange.RequestItems)
                    {
                        #region//RepairOrder RequestItem Header
                        WA.v2.WS_RepairOrder.RequestItem1 proxyrequestitem = new WA.v2.WS_RepairOrder.RequestItem1();
                        proxyrequestitem.CPSIND = requestitem.CPSIND;
                        proxyrequestitem.RequestCode = requestitem.RequestCode;
                        proxyrequestitem.RequestDescription = requestitem.RequestDescription;
                        proxyrequestitem.ServiceLineNumber = requestitem.ServiceLineNumber;
                        proxyrequestitem.ServiceLineStatus = Map.SetDMSCodeFromWACode(CodeType.ServiceLineStatus, requestitem.ServiceLineStatus);
                        proxyrequestitem.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, requestitem.ServiceType);
                        proxyrequestitem.TCEmployeeID = requestitem.TCEmployeeID;
                        proxyrequestitem.TCEmployeeName = requestitem.TCEmployeeName;
                        proxyrequestitem.WorkType = Map.SetDMSCodeFromWACode(CodeType.WorkType, requestitem.WorkType);
                        #endregion

                        #region//RepairOrder RequestItem Comments
                        if (requestitem.Comments != null && requestitem.Comments.Count > 0)
                        {
                            int commentscnt = 0;
                            WA.v2.WS_RepairOrder.Comment1[] proxycomments = new WA.v2.WS_RepairOrder.Comment1[requestitem.Comments.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Common.Comment Comment in requestitem.Comments)
                            {
                                WA.v2.WS_RepairOrder.Comment1 proxycomment = new WA.v2.WS_RepairOrder.Comment1();
                                proxycomment.DescriptionComment = Comment.DescriptionComment;
                                proxycomment.SequenceNumber = Comment.SequenceNumber;
                                proxycomments[commentscnt] = proxycomment;
                                commentscnt++;
                            }
                            proxyrequestitem.Comments = proxycomments;
                        }
                        #endregion

                        #region//RepairOrder RequestItem Descriptions
                        if (requestitem.Descriptions != null && requestitem.Descriptions.Count > 0)
                        {
                            int descriptionscnt = 0;
                            WA.v2.WS_RepairOrder.Description1[] proxydescriptions = new WA.v2.WS_RepairOrder.Description1[requestitem.Descriptions.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in requestitem.Descriptions)
                            {
                                WA.v2.WS_RepairOrder.Description1 proxydescription = new WA.v2.WS_RepairOrder.Description1();
                                proxydescription.DescriptionComment = description.DescriptionComment;
                                proxydescription.SequenceNumber = description.SequenceNumber;
                                proxydescriptions[descriptionscnt] = proxydescription;
                                descriptionscnt++;
                            }
                            proxyrequestitem.Descriptions = proxydescriptions;
                        }
                        #endregion

                        #region//RepairOrder RequestItem OPCodes
                        if (requestitem.OPCodes != null && requestitem.OPCodes.Count > 0)
                        {
                            int opcodescnt = 0;
                            WA.v2.WS_RepairOrder.OPCode1[] proxyopcodes = new WA.v2.WS_RepairOrder.OPCode1[requestitem.OPCodes.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Common.OPCode opcode in requestitem.OPCodes)
                            {
                                #region//RepairOrder RequestItem OPCode Header
                                WA.v2.WS_RepairOrder.OPCode1 proxyopcode = new WA.v2.WS_RepairOrder.OPCode1();
                                proxyopcode.ActualHours = opcode.ActualHours;
                                proxyopcode.Code = opcode.Code;
                                proxyopcode.Description = opcode.Description;
                                proxyopcode.EstimatedHours = opcode.EstimatedHours;
                                proxyopcode.SequenceNumber = opcode.SequenceNumber;
                                proxyopcode.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, opcode.ServiceType);
                                proxyopcode.SkillLevel = opcode.SkillLevel;
                                #endregion

                                #region//RepairOrder RequestItem OPCode Descriptions
                                if (opcode.Descriptions != null && opcode.Descriptions.Count > 0)
                                {
                                    int descriptionscnt = 0;
                                    WA.v2.WS_RepairOrder.Description1[] proxydescriptions = new WA.v2.WS_RepairOrder.Description1[opcode.Descriptions.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in opcode.Descriptions)
                                    {
                                        WA.v2.WS_RepairOrder.Description1 proxydescription = new WA.v2.WS_RepairOrder.Description1();
                                        proxydescription.DescriptionComment = description.DescriptionComment;
                                        proxydescription.SequenceNumber = description.SequenceNumber;
                                        proxydescriptions[descriptionscnt] = proxydescription;
                                        descriptionscnt++;
                                    }
                                    proxyopcode.Descriptions = proxydescriptions;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Causes
                                if (opcode.Causes != null && opcode.Causes.Count > 0)
                                {
                                    int causescnt = 0;
                                    WA.v2.WS_RepairOrder.Cause1[] proxycauses = new WA.v2.WS_RepairOrder.Cause1[opcode.Causes.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Cause cause in opcode.Causes)
                                    {
                                        WA.v2.WS_RepairOrder.Cause1 proxycause = new WA.v2.WS_RepairOrder.Cause1();
                                        proxycause.CauseLaborOpCode = cause.CauseLaborOpCode;
                                        proxycause.Comment = cause.Comment;
                                        proxycause.SequenceNumber = cause.SequenceNumber;
                                        proxycauses[causescnt] = proxycause;
                                        causescnt++;
                                    }
                                    proxyopcode.Causes = proxycauses;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Corrections
                                if (opcode.Corrections != null && opcode.Corrections.Count > 0)
                                {
                                    int correctionscnt = 0;
                                    WA.v2.WS_RepairOrder.Correction1[] proxycorrections = new WA.v2.WS_RepairOrder.Correction1[opcode.Corrections.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Correction Correction in opcode.Corrections)
                                    {
                                        WA.v2.WS_RepairOrder.Correction1 proxycorrection = new WA.v2.WS_RepairOrder.Correction1();
                                        proxycorrection.CorrectionLaborOpCode = Correction.CorrectionLaborOpCode;
                                        proxycorrection.Comment = Correction.Comment;
                                        proxycorrection.SequenceNumber = Correction.SequenceNumber;
                                        proxycorrections[correctionscnt] = proxycorrection;
                                        correctionscnt++;
                                    }
                                    proxyopcode.Corrections = proxycorrections;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode PriceType
                                if (opcode.PriceType != null)
                                {
                                    WA.v2.WS_RepairOrder.PriceType1 proxypricetype = new WA.v2.WS_RepairOrder.PriceType1();
                                    proxypricetype.DiscountPrice = opcode.PriceType.DiscountPrice;
                                    proxypricetype.DiscountRate = opcode.PriceType.DiscountRate;
                                    proxypricetype.TotalPrice = opcode.PriceType.TotalPrice;
                                    proxypricetype.TotalPriceIncludeTax = opcode.PriceType.TotalPriceIncludeTax;
                                    proxypricetype.UnitPrice = opcode.PriceType.UnitPrice;
                                    proxyopcode.PriceType = proxypricetype;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Parts
                                if (opcode.Parts != null && opcode.Parts.Count > 0)
                                {
                                    int partscnt = 0;
                                    WA.v2.WS_RepairOrder.Part1[] proxyparts = new WA.v2.WS_RepairOrder.Part1[opcode.Parts.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Part part in opcode.Parts)
                                    {
                                        #region//RepairOrder RequestItem OPCode Parts Header
                                        WA.v2.WS_RepairOrder.Part1 proxypart = new WA.v2.WS_RepairOrder.Part1();
                                        proxypart.DisplayPartNumber = part.DisplayPartNumber;
                                        proxypart.PartDescription = part.PartDescription;
                                        proxypart.PartNumber = part.PartNumber;
                                        proxypart.PartType = Map.SetDMSCodeFromWACode(CodeType.PartType, part.PartType);
                                        proxypart.Quantity = part.Quantity;
                                        proxypart.SequenceNumber = part.SequenceNumber;
                                        proxypart.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, part.ServiceType);
                                        proxypart.StockQuantity = part.StockQuantity;
                                        proxypart.StockStatus = part.StockStatus;
                                        proxypart.UnitOfMeasure = part.UnitOfMeasure;
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Parts Descriptions
                                        if (part.Descriptions != null && part.Descriptions.Count > 0)
                                        {
                                            int descriptionscnt = 0;
                                            WA.v2.WS_RepairOrder.Description1[] proxydescriptions = new WA.v2.WS_RepairOrder.Description1[part.Descriptions.Count];
                                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in part.Descriptions)
                                            {
                                                WA.v2.WS_RepairOrder.Description1 proxydescription = new WA.v2.WS_RepairOrder.Description1();
                                                proxydescription.DescriptionComment = description.DescriptionComment;
                                                proxydescription.SequenceNumber = description.SequenceNumber;
                                                proxydescriptions[descriptionscnt] = proxydescription;
                                                descriptionscnt++;
                                            }
                                            proxypart.Descriptions = proxydescriptions;
                                        }
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Parts PriceType
                                        if (part.PriceType != null)
                                        {
                                            WA.v2.WS_RepairOrder.PriceType1 proxypricetype = new WA.v2.WS_RepairOrder.PriceType1();
                                            proxypricetype.DiscountPrice = part.PriceType.DiscountPrice;
                                            proxypricetype.DiscountRate = part.PriceType.DiscountRate;
                                            proxypricetype.TotalPrice = part.PriceType.TotalPrice;
                                            proxypricetype.TotalPriceIncludeTax = part.PriceType.TotalPriceIncludeTax;
                                            proxypricetype.UnitPrice = part.PriceType.UnitPrice;
                                            proxypart.PriceType = proxypricetype;
                                        }
                                        #endregion

                                        proxyparts[partscnt] = proxypart;
                                        partscnt++;
                                    }
                                    proxyopcode.Parts = proxyparts;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Sublets
                                if (opcode.Sublets != null && opcode.Sublets.Count > 0)
                                {
                                    int subletscnt = 0;
                                    WA.v2.WS_RepairOrder.Sublet1[] proxysublets = new WA.v2.WS_RepairOrder.Sublet1[opcode.Sublets.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Sublet sublet in opcode.Sublets)
                                    {
                                        #region//RepairOrder RequestItem OPCode Sublets Header
                                        WA.v2.WS_RepairOrder.Sublet1 proxysublet = new WA.v2.WS_RepairOrder.Sublet1();
                                        proxysublet.SequenceNumber = sublet.SequenceNumber;
                                        proxysublet.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, sublet.ServiceType);
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Sublets Descriptions
                                        if (sublet.Descriptions != null && sublet.Descriptions.Count > 0)
                                        {
                                            int descriptionscnt = 0;
                                            WA.v2.WS_RepairOrder.Description1[] proxydescriptions = new WA.v2.WS_RepairOrder.Description1[sublet.Descriptions.Count];
                                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in sublet.Descriptions)
                                            {
                                                WA.v2.WS_RepairOrder.Description1 proxydescription = new WA.v2.WS_RepairOrder.Description1();
                                                proxydescription.DescriptionComment = description.DescriptionComment;
                                                proxydescription.SequenceNumber = description.SequenceNumber;
                                                proxydescriptions[descriptionscnt] = proxydescription;
                                                descriptionscnt++;
                                            }
                                            proxysublet.Descriptions = proxydescriptions;
                                        }
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Sublets PriceType
                                        if (sublet.PriceType != null)
                                        {
                                            WA.v2.WS_RepairOrder.PriceType1 proxypricetype = new WA.v2.WS_RepairOrder.PriceType1();
                                            proxypricetype.DiscountPrice = sublet.PriceType.DiscountPrice;
                                            proxypricetype.DiscountRate = sublet.PriceType.DiscountRate;
                                            proxypricetype.TotalPrice = sublet.PriceType.TotalPrice;
                                            proxypricetype.TotalPriceIncludeTax = sublet.PriceType.TotalPriceIncludeTax;
                                            proxypricetype.UnitPrice = sublet.PriceType.UnitPrice;
                                            proxysublet.PriceType = proxypricetype;
                                        }
                                        #endregion

                                        proxysublets[subletscnt] = proxysublet;
                                        subletscnt++;
                                    }
                                    proxyopcode.Sublets = proxysublets;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode MISCs
                                if (opcode.MISCs != null && opcode.MISCs.Count > 0)
                                {
                                    int miscscnt = 0;
                                    WA.v2.WS_RepairOrder.MISC1[] proxymiscs = new WA.v2.WS_RepairOrder.MISC1[opcode.MISCs.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.MISC misc in opcode.MISCs)
                                    {
                                        #region//RepairOrder RequestItem OPCode MISCs Header
                                        WA.v2.WS_RepairOrder.MISC1 proxymisc = new WA.v2.WS_RepairOrder.MISC1();
                                        proxymisc.SequenceNumber = misc.SequenceNumber;
                                        proxymisc.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, misc.ServiceType);
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode MISCs Descriptions
                                        if (misc.Descriptions != null && misc.Descriptions.Count > 0)
                                        {
                                            int descriptionscnt = 0;
                                            WA.v2.WS_RepairOrder.Description1[] proxydescriptions = new WA.v2.WS_RepairOrder.Description1[misc.Descriptions.Count];
                                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in misc.Descriptions)
                                            {
                                                WA.v2.WS_RepairOrder.Description1 proxydescription = new WA.v2.WS_RepairOrder.Description1();
                                                proxydescription.DescriptionComment = description.DescriptionComment;
                                                proxydescription.SequenceNumber = description.SequenceNumber;
                                                proxydescriptions[descriptionscnt] = proxydescription;
                                                descriptionscnt++;
                                            }
                                            proxymisc.Descriptions = proxydescriptions;
                                        }
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode MISCs PriceType
                                        if (misc.PriceType != null)
                                        {
                                            WA.v2.WS_RepairOrder.PriceType1 proxypricetype = new WA.v2.WS_RepairOrder.PriceType1();
                                            proxypricetype.DiscountPrice = misc.PriceType.DiscountPrice;
                                            proxypricetype.DiscountRate = misc.PriceType.DiscountRate;
                                            proxypricetype.TotalPrice = misc.PriceType.TotalPrice;
                                            proxypricetype.TotalPriceIncludeTax = misc.PriceType.TotalPriceIncludeTax;
                                            proxypricetype.UnitPrice = misc.PriceType.UnitPrice;
                                            proxymisc.PriceType = proxypricetype;
                                        }
                                        #endregion

                                        proxymiscs[miscscnt] = proxymisc;
                                        miscscnt++;
                                    }
                                    proxyopcode.MISCs = proxymiscs;
                                }
                                #endregion

                                proxyopcodes[opcodescnt] = proxyopcode;
                                opcodescnt++;
                            }
                            proxyrequestitem.OPCodes = proxyopcodes;
                        }
                        #endregion

                        proxyrequestitems[requestitemscnt] = proxyrequestitem;
                        requestitemscnt++;
                    }
                    proxyrepairorderchange.RequestItems = proxyrequestitems;
                }
                #endregion

                proxyrequest.RepairOrderChange = proxyrepairorderchange;
            }
            #endregion

            //Run proxy web method with proxy request
            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS RepairOrderChangeRequest XML", proxyrequest);

            WA.v2.WS_RepairOrder.RepairOrderChangeResponse proxyresponse = proxyws.RepairOrderChange(proxyrequest);

            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS RepairOrderChangeResponse XML", proxyresponse);

            //Mapping with Standard Interface Specification Object
            if (proxyresponse != null)
            {
                if (proxyresponse.TransactionHeader != null)
                {
                    #region//TransactionHeader Set
                    WA.Standard.IF.Data.v2.Common.Common.TransactionHeader transactionheader = new WA.Standard.IF.Data.v2.Common.Common.TransactionHeader();
                    transactionheader.CountryID = proxyresponse.TransactionHeader.CountryID;
                    transactionheader.DealerID = proxyresponse.TransactionHeader.DealerID;
                    transactionheader.DistributorID = proxyresponse.TransactionHeader.DistributorID;
                    transactionheader.DMSCode = proxyresponse.TransactionHeader.DMSCode;
                    transactionheader.DMSServerUrl = proxyresponse.TransactionHeader.DMSServerUrl;
                    transactionheader.DMSVersion = proxyresponse.TransactionHeader.DMSVersion;
                    transactionheader.DocumentVersion = proxyresponse.TransactionHeader.DocumentVersion;
                    transactionheader.GroupID = proxyresponse.TransactionHeader.GroupID;
                    transactionheader.IneterfaceID = proxyresponse.TransactionHeader.IneterfaceID;
                    transactionheader.Password = proxyresponse.TransactionHeader.Password;
                    transactionheader.PollingToken = proxyresponse.TransactionHeader.PollingToken;
                    transactionheader.RequestPollingToken = proxyresponse.TransactionHeader.RequestPollingToken;
                    transactionheader.RequestType = proxyresponse.TransactionHeader.RequestType;
                    transactionheader.TransactionId = proxyresponse.TransactionHeader.TransactionId;
                    transactionheader.TransactionDateTimeLocal = proxyresponse.TransactionHeader.TransactionDateTimeLocal;
                    transactionheader.TransactionDateTimeUTC = proxyresponse.TransactionHeader.TransactionDateTimeUTC;
                    transactionheader.TransactionType = proxyresponse.TransactionHeader.TransactionType;
                    transactionheader.Username = proxyresponse.TransactionHeader.Username;
                    transactionheader.VenderTrackingCode = proxyresponse.TransactionHeader.VenderTrackingCode;
                    response.TransactionHeader = transactionheader;
                    #endregion
                }

                //ResultMessage Set
                if (proxyresponse.ResultMessage != null)
                {
                    response.ResultMessage = GetResultMessageData(proxyresponse.ResultMessage.Code, proxyresponse.ResultMessage.Message);
                }

                if (proxyresponse.Errors != null)
                {
                    //Error List Set
                    foreach (WA.v2.WS_RepairOrder.Error1 proxyerror in proxyresponse.Errors)
                    {
                        if (response.Errors != null)
                            response.Errors.Add(GetErrorData(proxyerror.Code, proxyerror.Message));
                        else
                            response.Errors = GetErrorDataList(proxyerror.Code, proxyerror.Message);
                    }
                }
            }
            #endregion

            return response;
        }