Esempio n. 1
0
        public WA.Standard.IF.Data.v2.Common.Appointment.AppointmentGetResponse AppointmentGet(WA.Standard.IF.Data.v2.Common.Appointment.AppointmentGetRequest request)
        {
            WA.Standard.IF.Data.v2.Common.Appointment.AppointmentGetResponse response = new WA.Standard.IF.Data.v2.Common.Appointment.AppointmentGetResponse();

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

            #region AppointmentGet 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_Appointment.Appointment proxyws = new WA.v2.WS_Appointment.Appointment();
            proxyws.Credentials = proxycredential;

            //Create proxy request with appointmentget and transaction
            WA.v2.WS_Appointment.AppointmentGetRequest proxyrequest = new WA.v2.WS_Appointment.AppointmentGetRequest();

            //Create proxy transaction
            WA.v2.WS_Appointment.TransactionHeader proxytransactionheader = new WA.v2.WS_Appointment.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/Appointment.1cws", proxytransactionheader.DMSServerUrl);
                #endregion
            }

            //Create proxy appointmentget
            WA.v2.WS_Appointment.AppointmentGet proxyappointmentget = new WA.v2.WS_Appointment.AppointmentGet();
            if (request.AppointmentGet != null)
            {
                #region//AppointmentGet Set
                proxyappointmentget.AppointmentDateTimeFromLocal = request.AppointmentGet.AppointmentDateTimeFromLocal;
                proxyappointmentget.AppointmentDateTimeToLocal = request.AppointmentGet.AppointmentDateTimeFromLocal;
                proxyappointmentget.DMSAppointmentID = request.AppointmentGet.DMSAppointmentID;
                proxyappointmentget.DMSAppointmentNo = request.AppointmentGet.DMSAppointmentNo;
                proxyappointmentget.DMSAppointmentStatus = Map.SetDMSCodeFromWACode(CodeType.DMSAppointmentStatus, request.AppointmentGet.DMSAppointmentStatus);
                proxyappointmentget.LastModifiedDateTimeFromUTC = request.AppointmentGet.LastModifiedDateTimeFromUTC;
                proxyappointmentget.LastModifiedDateTimeToUTC = request.AppointmentGet.LastModifiedDateTimeToUTC;
                proxyappointmentget.SAEmployeeID = request.AppointmentGet.SAEmployeeID;
                proxyappointmentget.SAEmployeeName = request.AppointmentGet.SAEmployeeName;
                proxyappointmentget.TCEmployeeID = request.AppointmentGet.TCEmployeeID;
                proxyappointmentget.TCEmployeeName = request.AppointmentGet.TCEmployeeName;
                if (request.AppointmentGet.Customer != null)
                {
                    WA.v2.WS_Appointment.Customer proxycustomer = new WA.v2.WS_Appointment.Customer();
                    proxycustomer.DMSCustomerNo = request.AppointmentGet.Customer.DMSCustomerNo;
                    proxycustomer.LastName = request.AppointmentGet.Customer.LastName;

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

            #endregion

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

            WA.v2.WS_Appointment.AppointmentGetResponse proxyresponse = proxyws.AppointmentGet(proxyrequest);

            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS AppointmentGetResponse 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_Appointment.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//AppointmentGetResponse Set

                    if (proxyresponse.Appointments != null && proxyresponse.Appointments.Length > 0)
                    {
                        response.Appointments = new List<WA.Standard.IF.Data.v2.Common.Appointment.Appointment>();
                        foreach (WA.v2.WS_Appointment.Appointment1 proxyappointment in proxyresponse.Appointments)
                        {
                            #region //Appointment Header
                            WA.Standard.IF.Data.v2.Common.Appointment.Appointment appointment = new WA.Standard.IF.Data.v2.Common.Appointment.Appointment();
                            appointment.AppointmentDateTimeLocal = proxyappointment.AppointmentDateTimeLocal;
                            appointment.CloseDateTimeLocal = proxyappointment.CloseDateTimeLocal;
                            appointment.CustomerComment = proxyappointment.CustomerComment;
                            appointment.DeliveryDateTimeLocal = proxyappointment.DeliveryDateTimeLocal;
                            appointment.DMSAppointmentID = proxyappointment.DMSAppointmentID;
                            appointment.DMSAppointmentNo = proxyappointment.DMSAppointmentNo;
                            appointment.DMSAppointmentStatus = Map.GetWACodeFromDMSCode(CodeType.DMSAppointmentStatus, proxyappointment.DMSAppointmentStatus);
                            appointment.InMileage = proxyappointment.InMileage;
                            appointment.OpenDateTimeLocal = proxyappointment.OpenDateTimeLocal;
                            appointment.PaymentMethod = Map.GetWACodeFromDMSCode(CodeType.PaymentMethod, proxyappointment.PaymentMethod);
                            appointment.SAEmployeeID = proxyappointment.SAEmployeeID;
                            appointment.SAEmployeeName = proxyappointment.SAEmployeeName;
                            appointment.ServiceType = proxyappointment.ServiceType;
                            appointment.TCEmployeeID = proxyappointment.TCEmployeeID;
                            appointment.TCEmployeeName = proxyappointment.TCEmployeeName;
                            appointment.WorkType = Map.GetWACodeFromDMSCode(CodeType.WorkType, proxyappointment.WorkType);
                            #endregion

                            #region //Appointment AdditionalFields
                            if (proxyappointment.AdditionalFields != null && proxyappointment.AdditionalFields.Length > 0)
                            {
                                appointment.AdditionalFields = new List<WA.Standard.IF.Data.v2.Common.Common.AdditionalField>();
                                foreach (WA.v2.WS_Appointment.AdditionalField proxyadditionalfield in proxyappointment.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;
                                    appointment.AdditionalFields.Add(additionalfield);
                                }
                            }
                            #endregion

                            #region//Appointment JobRefs
                            if (proxyappointment.JobRefs != null && proxyappointment.JobRefs.Length > 0)
                            {
                                appointment.JobRefs = new List<WA.Standard.IF.Data.v2.Common.Common.JobRef>();
                                foreach (WA.v2.WS_Appointment.JobRef proxyjobref in proxyappointment.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);
                                    appointment.JobRefs.Add(jobref);
                                }
                            }
                            #endregion

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

                            #region//Appointment Options
                            if (proxyappointment.Options != null && proxyappointment.Options.Length > 0)
                            {
                                appointment.Options = new List<WA.Standard.IF.Data.v2.Common.Common.Option>();
                                foreach (WA.v2.WS_Appointment.Option proxyoption in proxyappointment.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;
                                    appointment.Options.Add(option);
                                }
                            }
                            #endregion

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

                            #region//Appointment RORefs
                            if (proxyappointment.RORefs != null && proxyappointment.RORefs.Length > 0)
                            {
                                appointment.RORefs = new List<WA.Standard.IF.Data.v2.Common.Common.RORef>();
                                foreach (WA.v2.WS_Appointment.RORef proxyroref in proxyappointment.RORefs)
                                {
                                    WA.Standard.IF.Data.v2.Common.Common.RORef roref = new WA.Standard.IF.Data.v2.Common.Common.RORef();
                                    roref.DMSRONo = proxyroref.DMSRONo;
                                    roref.DMSROStatus = Map.GetWACodeFromDMSCode(CodeType.DMSROStatus, proxyroref.DMSROStatus);
                                    appointment.RORefs.Add(roref);
                                }
                            }
                            #endregion

                            #region//Appointment Customers
                            if (proxyappointment.Customers != null && proxyappointment.Customers.Length > 0)
                            {
                                appointment.Customers = new List<WA.Standard.IF.Data.v2.Common.Customer.Customer>();
                                foreach (WA.v2.WS_Appointment.Customer1 proxycustomer in proxyappointment.Customers)
                                {
                                    #region//Appointment 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//Appointment 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_Appointment.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//Appointment 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_Appointment.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//Appointment 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//Appointment 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_Appointment.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

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

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

                                    #region//Appointment Vehicle Campaigns
                                    if (proxyappointment.Vehicle.Campaigns != null && proxyappointment.Vehicle.Campaigns.Length > 0)
                                    {
                                        vehicle.Campaigns = new List<WA.Standard.IF.Data.v2.Common.Vehicle.Campaign>();
                                        foreach (WA.v2.WS_Appointment.Campaign proxycampaign in proxyappointment.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

                                    appointment.Vehicle = vehicle;
                                }
                            }
                            #endregion

                            #region//Appointment RequestItems
                            if (proxyappointment.RequestItems != null && proxyappointment.RequestItems.Length > 0)
                            {
                                appointment.RequestItems = new List<WA.Standard.IF.Data.v2.Common.Common.RequestItem>();
                                foreach (WA.v2.WS_Appointment.RequestItem proxyrequestitem in proxyappointment.RequestItems)
                                {
                                    #region//Appointment 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//Appointment 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_Appointment.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//Appointment 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_Appointment.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//Appointment 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_Appointment.OPCode proxyopcode in proxyrequestitem.OPCodes)
                                        {
                                            #region//Appointment 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//Appointment 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_Appointment.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//Appointment 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_Appointment.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//Appointment 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_Appointment.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//Appointment 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//Appointment 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_Appointment.Part proxypart in proxyopcode.Parts)
                                                {
                                                    #region//Appointment 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//Appointment 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_Appointment.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//Appointment 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//Appointment 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_Appointment.Sublet proxysublet in proxyopcode.Sublets)
                                                {
                                                    #region//Appointment 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//Appointment 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_Appointment.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//Appointment 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//Appointment 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_Appointment.MISC proxymisc in proxyopcode.MISCs)
                                                {
                                                    #region//Appointment 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//Appointment 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_Appointment.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//Appointment 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

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

                            response.Appointments.Add(appointment);
                        }
                    }
                    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;
        }
Esempio n. 2
0
        public WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicleGetResponse CustomerVehicleGet(WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicleGetRequest request)
        {
            WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicleGetResponse response = new WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicleGetResponse();

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

            #region CustomerVehicleGet 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_CustomerVehicle.CustomerVehicle proxyws = new WA.v2.WS_CustomerVehicle.CustomerVehicle();
            proxyws.Credentials = proxycredential;

            //Create proxy request with customervehicleget and transaction
            WA.v2.WS_CustomerVehicle.CustomerVehicleGetRequest proxyrequest = new WA.v2.WS_CustomerVehicle.CustomerVehicleGetRequest();

            //Create proxy transaction
            WA.v2.WS_CustomerVehicle.TransactionHeader proxytransactionheader = new WA.v2.WS_CustomerVehicle.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/CustomerVehicle.1cws", proxytransactionheader.DMSServerUrl);
                #endregion
            }

            //Create proxy customervehicleget
            WA.v2.WS_CustomerVehicle.CustomerVehicleGet proxycustomervehicleget = new WA.v2.WS_CustomerVehicle.CustomerVehicleGet();
            if (request.CustomerVehicleGet != null)
            {
                #region//CustomerVehicleGet Customer
                if (request.CustomerVehicleGet.Customer != null)
                {
                    WA.v2.WS_CustomerVehicle.Customer customerget = new WA.v2.WS_CustomerVehicle.Customer();
                    customerget.CardNo = request.CustomerVehicleGet.Customer.CardNo;
                    customerget.DMSCustomerNo = request.CustomerVehicleGet.Customer.DMSCustomerNo;
                    customerget.Email = request.CustomerVehicleGet.Customer.Email;
                    customerget.LastName = request.CustomerVehicleGet.Customer.LastName;

                    if (request.CustomerVehicleGet.Customer.Contacts != null && request.CustomerVehicleGet.Customer.Contacts.Count > 0)
                    {
                        int contactcnt = 0;
                        WA.v2.WS_CustomerVehicle.Contact[] proxycontacts = new WA.v2.WS_CustomerVehicle.Contact[request.CustomerVehicleGet.Customer.Contacts.Count];
                        foreach (WA.Standard.IF.Data.v2.Common.CustomerVehicle.Contact contact in request.CustomerVehicleGet.Customer.Contacts)
                        {
                            WA.v2.WS_CustomerVehicle.Contact proxycontact = new WA.v2.WS_CustomerVehicle.Contact();
                            proxycontact.ContactType = Map.SetDMSCodeFromWACode(CodeType.ContactType, contact.ContactType);
                            proxycontact.ContactValue = contact.ContactValue;
                            proxycontacts[contactcnt] = proxycontact;
                            contactcnt++;
                        }
                        customerget.Contacts = proxycontacts;
                    }

                    proxycustomervehicleget.Customer = customerget;
                }
                #endregion

                #region//CustomerVehicleGet Vehicle
                if (request.CustomerVehicleGet.Vehicle != null)
                {
                    WA.v2.WS_CustomerVehicle.Vehicle proxyvehicle = new WA.v2.WS_CustomerVehicle.Vehicle();
                    proxyvehicle.DMSVehicleNo = request.CustomerVehicleGet.Vehicle.DMSVehicleNo;
                    proxyvehicle.LastSixVIN = request.CustomerVehicleGet.Vehicle.LastSixVIN;
                    proxyvehicle.LicensePlateNo = request.CustomerVehicleGet.Vehicle.LicensePlateNo;
                    proxyvehicle.VIN = request.CustomerVehicleGet.Vehicle.VIN.Length == 17 ? request.CustomerVehicleGet.Vehicle.VIN : "";
                    proxycustomervehicleget.Vehicle = proxyvehicle;
                }
                #endregion

                proxyrequest.CustomerVehicleGet = proxycustomervehicleget;
            }
            #endregion

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

            WA.v2.WS_CustomerVehicle.CustomerVehicleGetResponse proxyresponse = proxyws.CustomerVehicleGet(proxyrequest);

            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS CustomerVehicleGetResponse 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_CustomerVehicle.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 //CustomerVehicleGetResponse Set

                    if (proxyresponse.CustomerVehicles != null && proxyresponse.CustomerVehicles.Length > 0)
                    {
                        response.CustomerVehicles = new List<WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicle>();
                        foreach (WA.v2.WS_CustomerVehicle.CustomerVehicle1 proxycustomervehicle in proxyresponse.CustomerVehicles)
                        {
                            #region //CustomerVehicle Header
                            WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicle customervehicle = new WA.Standard.IF.Data.v2.Common.CustomerVehicle.CustomerVehicle();
                            #endregion

                            #region //CustomerVehicle Customer & Vehicle
                            if (proxycustomervehicle.Customer != null && proxycustomervehicle.Vehicle != null)
                            {
                                #region //CustomerVehicle Customer Header
                                WA.Standard.IF.Data.v2.Common.Customer.Customer customer = new WA.Standard.IF.Data.v2.Common.Customer.Customer();
                                customer.CardNo = proxycustomervehicle.Customer.CardNo;
                                customer.CustomerInfoType = Map.GetWACodeFromDMSCode(CodeType.CustomerInfoType, proxycustomervehicle.Customer.CustomerInfoType);
                                customer.DMSCustomerNo = proxycustomervehicle.Customer.DMSCustomerNo;
                                customer.Email = proxycustomervehicle.Customer.Email;
                                customer.FirstName = proxycustomervehicle.Customer.FirstName;
                                customer.FullName = proxycustomervehicle.Customer.FullName;
                                customer.Gender = Map.GetWACodeFromDMSCode(CodeType.Gender, proxycustomervehicle.Customer.Gender);
                                customer.LastName = proxycustomervehicle.Customer.LastName;
                                customer.MiddleName = proxycustomervehicle.Customer.MiddleName;
                                customer.Salutation = proxycustomervehicle.Customer.Salutation;
                                #endregion

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

                                #region //CustomerVehicle Customer Addresses
                                if (proxycustomervehicle.Customer.Addresses != null && proxycustomervehicle.Customer.Addresses.Length > 0)
                                {
                                    customer.Addresses = new List<WA.Standard.IF.Data.v2.Common.Customer.Address>();
                                    foreach (WA.v2.WS_CustomerVehicle.Address proxyaddress in proxycustomervehicle.Customer.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 //CustomerVehicle Customer Contacts
                                if (proxycustomervehicle.Customer.Contacts != null && proxycustomervehicle.Customer.Contacts.Length > 0)
                                {
                                    customer.Contacts = new List<WA.Standard.IF.Data.v2.Common.Customer.Contact>();
                                    foreach (WA.v2.WS_CustomerVehicle.Contact1 proxycontact in proxycustomervehicle.Customer.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 //CustomerVehicle Customer CorporateInfos
                                if (proxycustomervehicle.Customer.CorporateInfos != null && proxycustomervehicle.Customer.CorporateInfos.Length > 0)
                                {
                                    customer.CorporateInfos = new List<WA.Standard.IF.Data.v2.Common.Customer.CorporateInfo>();
                                    foreach (WA.v2.WS_CustomerVehicle.CorporateInfo proxycorporateinfo in proxycustomervehicle.Customer.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

                                customervehicle.Customer = customer;

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

                                #region//CustomerVehicle Vehicle Campaigns
                                if (proxycustomervehicle.Vehicle.Campaigns != null && proxycustomervehicle.Vehicle.Campaigns.Length > 0)
                                {
                                    vehicle.Campaigns = new List<WA.Standard.IF.Data.v2.Common.Vehicle.Campaign>();
                                    foreach (WA.v2.WS_CustomerVehicle.Campaign proxycampaign in proxycustomervehicle.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

                                customervehicle.Vehicle = vehicle;

                                response.CustomerVehicles.Add(customervehicle);
                            }
                            #endregion
                        }
                    }
                    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;
        }