public void CreatePolicy(ref PetfirstCustomer mCustomer, List<Pet> lstPets) { mCustomer.WebserviceErrorMsg = ""; PolicyServiceSellPolicyRequest pRequest = new PolicyServiceSellPolicyRequest(); if (!string.IsNullOrEmpty(mCustomer.CcNumber)) { pRequest.CreditCard = new CreditCard() { Address1 = mCustomer.BillingInfo.Address1, Address2 = mCustomer.BillingInfo.Address2, City = mCustomer.BillingInfo.City, Cvvs2 = mCustomer.SecCode, ExpirationMonth = mCustomer.ExpirationMonth, ExpirationYear = mCustomer.ExpirationYear, FirstName = mCustomer.BillingInfo.FirstName, LastName = mCustomer.BillingInfo.LastName, Number = mCustomer.CcNumber, StateId = mCustomer.BillingInfo.StateId, ZipCode = mCustomer.BillingInfo.Zip }; } if (mCustomer.GiftCards != null) { int gcCount = mCustomer.GiftCards.Count; pRequest.GiftCards = new PolicyServiceReference.GiftCard[gcCount]; int i =0; foreach (GiftCard gc in mCustomer.GiftCards) { PolicyServiceReference.GiftCard pGC = new PolicyServiceReference.GiftCard(); pGC.Pin = gc.Pin; pGC.SrcRefNum = 0; pRequest.GiftCards[i] = pGC; i++; } } pRequest.Customer = new PolicyServiceReference.Customer() { ZipCode = mCustomer.MembershipInfo.Zip, WorkPhone = String.Empty, StreetAddress2 = mCustomer.MembershipInfo.Address2, StreetAddress = mCustomer.MembershipInfo.Address1, StateId = mCustomer.MembershipInfo.StateId, MobilePhone = String.Empty, LastName = mCustomer.MembershipInfo.LastName, FirstName = mCustomer.MembershipInfo.FirstName, HomePhone = mCustomer.MembershipInfo.Phone, CityName = mCustomer.MembershipInfo.City, EmailAddress = mCustomer.MembershipInfo.Email }; pRequest.CoInsurance = 1-lstPets[0].Reimbursement; pRequest.Deductible = lstPets[0].DeductibleAmount; pRequest.EnrollmentCode = mCustomer.EnrollmentCode; pRequest.PlanId = lstPets[0].PlanId; pRequest.PaymentFrequencyId = (int)mCustomer.PayFrequency;//annual pRequest.IncludeRoutine = false; pRequest.IncludeRoutine125 = false; pRequest.IncludeRoutine250 = false; pRequest.IncludeRoutine400 = false; if (!lstPets[0].Routine.ToLower().Equals("0")) { pRequest.IncludeRoutine = true; switch (lstPets[0].Routine.ToLower()) { case "routine125": pRequest.IncludeRoutine125 = true; break; case "routine250": pRequest.IncludeRoutine250 = true; break; case "routine400": pRequest.IncludeRoutine400 = true; break; } } pRequest.InternetDiscount = mCustomer.DiscountInternetPurchase; pRequest.MilitaryDiscount = mCustomer.DiscountMilitarySelected; pRequest.VetDiscount = mCustomer.DiscountVetSelected; int nPlan = lstPets[0].PlanId; int stateid = mCustomer.MembershipInfo.StateId; int underwriter = mCustomer.Underwriter; pRequest.UnderwriterID = mCustomer.Underwriter; pRequest.FilingID = (from pts in context.v_PlansToStates where pts.stateProvinceID.Equals(stateid) && pts.UnderwriterID.Equals(underwriter) && pts.plan_id == nPlan select pts.FilingID).First(); pRequest.IncludeBreeders = lstPets[0].Breeder; if (lstPets[0].Hereditary.ToLower().Equals("hereditary100")) { pRequest.IncludeHereditary100 = true; } else if (lstPets[0].Hereditary.ToLower().Equals("hereditary25")) { pRequest.IncludeHereditary25 = true; } else { pRequest.IncludeHereditary100 = false; pRequest.IncludeHereditary25 = false; } pRequest.IncludePrescriptionFood = lstPets[0].PrescriptionFood; pRequest.KrogerLoyaltyNumber = string.Empty; PolicyServiceReference.Pet p1 = CreatePolicyRequestPet(lstPets[0]); if (lstPets.Count ==3)//3 pets { pRequest.Pets = new PolicyServiceReference.Pet[3]; pRequest.Pets[0] = p1; pRequest.Pets[1] = CreatePolicyRequestPet(lstPets[1]); pRequest.Pets[2] = CreatePolicyRequestPet(lstPets[2]); } else if (lstPets.Count ==2) { pRequest.Pets = new PolicyServiceReference.Pet[2]; pRequest.Pets[0] = p1; pRequest.Pets[1] = CreatePolicyRequestPet(lstPets[1]); } else { pRequest.Pets = new PolicyServiceReference.Pet[1]; pRequest.Pets[0] = p1; } PolicyServiceClient pc = new PolicyServiceClient(); try { PolicyServiceSellPolicyResponse resp = pc.SellPolicy(pRequest); if (string.IsNullOrEmpty(resp.Error)) { foreach (Pet p in lstPets) { p.PolicyNumber = resp.PolicyNumber; p.PolicyId = resp.PolicyId; } } else { if (!string.IsNullOrEmpty(resp.PolicyNumber)) { foreach (Pet p in lstPets) { p.PolicyNumber = resp.PolicyNumber; p.PolicyId = resp.PolicyId; } } mCustomer.WebserviceErrorMsg = resp.Error; } } catch (Exception) { throw; } finally { try { if (pc.State == CommunicationState.Faulted) pc.Abort(); else if (pc.State == CommunicationState.Opened) pc.Close(); } catch { } } }