/// <summary>
 /// Enters Info For New Contact
 /// </summary>
 /// <param name="field">Use FieldMappingOptions Class</param>
 /// <param name="textToEnter"></param>
 public void EnterNewContactInfo(ManualFieldOptions field, string textToEnter)
 {
     string fieldLocator = "//label[contains(text(),'{0}')][@for='txtValue']/following-sibling::input";
     UIUtil.DefaultProvider.Type(string.Format(fieldLocator, StringEnum.GetStringValue(field)), textToEnter, LocateBy.XPath);
 }
        /// <summary>
        /// Verifies data present on the contact details page. This code is really not ideal, but I am frustrated and can't think of a better way
        /// </summary>
        /// <param name="fieldToVerify">Use FieldMappingOptions Note: to verify ANY NAME you need to use the full name (first last) or it will fail.</param>
        /// <param name="expectedData"></param>
        public void VerifyContactDetailInfo(ManualFieldOptions fieldToVerify, string expectedData)
        {
            string actualData;

            if (fieldToVerify == ManualFieldOptions.FirstName || fieldToVerify == ManualFieldOptions.LastName)
            {
                actualData = UIUtil.DefaultProvider.GetText("builderSectionHeaderText", LocateBy.ClassName);
                Utilities.VerifyTool.VerifyValue(expectedData, actualData, "Data: {0}");
                return;
            }

            if (fieldToVerify == ManualFieldOptions.EmailAddress || fieldToVerify == ManualFieldOptions.Company)
            {
                actualData = UIUtil.DefaultProvider.GetText(string.Format(ContactDetailsLocator, StringEnum.GetStringValue(fieldToVerify)), LocateBy.XPath);
                Utilities.VerifyTool.VerifyValue(expectedData, actualData, "Data: {0}");
                return;
            }

            if (fieldToVerify == ManualFieldOptions.WorkPhone)
            {
                actualData = UIUtil.DefaultProvider.GetText(string.Format(ContactDetailsLocator, "Phone Number"), LocateBy.XPath);
                Utilities.VerifyTool.VerifyValue(expectedData, actualData, "Data: {0}");
                return;
            }

            if (fieldToVerify == ManualFieldOptions.AddressLine1
                || fieldToVerify == ManualFieldOptions.AddressLine2
                || fieldToVerify == ManualFieldOptions.State
                || fieldToVerify == ManualFieldOptions.Zip
                || fieldToVerify == ManualFieldOptions.City)
            {
                actualData = UIUtil.DefaultProvider.GetText("//address", LocateBy.XPath);
                Assert.True(actualData.Contains(expectedData), "Data: " + expectedData + ", was not found");
                return;
            }
            else
            {
                if(UIUtil.DefaultProvider.IsElementPresent("Show All Fields", LocateBy.LinkText))
                {
                    UIUtil.DefaultProvider.WaitForDisplayAndClick("Show All Fields", LocateBy.LinkText);
                    UIUtil.DefaultProvider.WaitForAJAXRequest();
                }

                actualData = UIUtil.DefaultProvider.GetText(string.Format(ContactDetailsLocator, StringEnum.GetStringValue(fieldToVerify)), LocateBy.XPath);
                Utilities.VerifyTool.VerifyValue(expectedData, actualData, "Data: {0}");
            }
        }
 public void ChooseFieldToDisplay(ManualFieldOptions field, bool visible, bool required)
 {
     if (field == ManualFieldOptions.AdditionalField1
         || field == ManualFieldOptions.AdditionalField2
         || field == ManualFieldOptions.AdditionalField3
         || field == ManualFieldOptions.AdditionalField4
         || field == ManualFieldOptions.AdditionalField5
         || field == ManualFieldOptions.AdditionalField6
         || field == ManualFieldOptions.AdditionalField7
         || field == ManualFieldOptions.AdditionalField8
         || field == ManualFieldOptions.AdditionalField9
         || field == ManualFieldOptions.AdditionalField10)
     {
         UIUtil.DefaultProvider.SetCheckbox(string.Format(AdditionalFieldVisibleLocator, StringEnum.GetStringValue(field)), visible, LocateBy.XPath);
         UIUtil.DefaultProvider.SetCheckbox(string.Format(AdditionalFieldRequiredLocator, StringEnum.GetStringValue(field)), required, LocateBy.XPath);
     }
     else
     {
         UIUtil.DefaultProvider.SetCheckbox(string.Format(FieldVisibleLocator, StringEnum.GetStringValue(field)), visible, LocateBy.XPath);
         UIUtil.DefaultProvider.SetCheckbox(string.Format(FieldRequiredLocator, StringEnum.GetStringValue(field)), required, LocateBy.XPath);
     }
 }