private void DoSeleniumActionForCustomField(Custom_Field customField)
        {
            int customFieldId = customField.Id;
            ClientDataContext db = new ClientDataContext();
            Custom_Field_Type customFieldType = (from cft in db.Custom_Field_Types where cft.Id == customField.TypeId select cft).Single();
            string description = customField.ReportDescription;
            description = (String.IsNullOrEmpty(description) ? customField.Description : description);
            decimal amount = 0.0M;

            if (customField.Amount.HasValue)
            {
                amount = customField.Amount.Value;
            }

            List<Custom_Fields_Pricing> pricing = (from p in db.Custom_Fields_Pricings where p.cfId == customField.Id select p).ToList();

            if (pricing.Count != 0)
            {
                foreach (Custom_Fields_Pricing cfp in pricing)
                {
                    if (cfp.startDate != null)
                    {
                        if (cfp.startDate < DateTime.Now)
                        {
                            amount = cfp.amount.Value;
                        }
                    }

                    if (cfp.endDate != null)
                    {
                        if (cfp.endDate > DateTime.Now)
                        {
                            amount = cfp.amount.Value;
                        }
                    }
                }
            }

            int customFieldCategory = Convert.ToInt32(customField.CategoryID);

            string response = String.Empty;
            bool requiresTracking = true;

            switch (customFieldType.Id)
            {
                case (int)CustomFieldManager.CustomFieldType.CheckBox:
                    UIUtil.DefaultProvider.SetCheckbox(customFieldId.ToString(), true, LocateBy.Id);
                    this.WaitForConditionalLogic();
                    break;

                case (int)CustomFieldManager.CustomFieldType.Dropdown:
                    List<Custom_Field_List_Item> dropDownListItems = this.DataTool.GetCustomFieldListItems(this.CurrentEventId, customFieldId);

                    if (dropDownListItems.Count > 0)
                    {
                        response = dropDownListItems[0].Description;
                        amount = Convert.ToDecimal(dropDownListItems[0].Amount);
                        UIUtil.DefaultProvider.SelectWithText(customFieldId.ToString(), response, LocateBy.Id);
                        this.WaitForConditionalLogic();
                    }

                    break;

                case (int)CustomFieldManager.CustomFieldType.RadioButton:
                    List<Custom_Field_List_Item> radioListItems = this.DataTool.GetCustomFieldListItems(this.CurrentEventId, customFieldId);

                    if (radioListItems.Count > 0)
                    {
                        int listItemId = radioListItems[0].Id;
                        response = radioListItems[0].Description;
                        amount = Convert.ToDecimal(radioListItems[0].Amount);
                        UIUtil.DefaultProvider.WaitForDisplayAndClick(listItemId.ToString(), LocateBy.Id);
                        this.WaitForConditionalLogic();
                    }

                    break;

                case 1:
                    throw new Exception("Not yet implemented");

                case (int)CustomFieldManager.CustomFieldType.OneLineText:
                case (int)CustomFieldManager.CustomFieldType.Paragraph:
                    response = "some text " + this.CurrentTicks;
                    UIUtil.DefaultProvider.Type(customFieldId.ToString(), response, LocateBy.Id);
                    break;

                case (int)CustomFieldManager.CustomFieldType.ContinueButton:
                    throw new Exception("Not yet implemented");

                case (int)CustomFieldManager.CustomFieldType.Number:
                case 12:
                    throw new Exception("Not yet implemented");

                case (int)CustomFieldManager.CustomFieldType.Date:
                case 15:
                    throw new Exception("Not yet implemented");

                case (int)CustomFieldManager.CustomFieldType.Time:
                    throw new Exception("Not yet implemented");

                case (int)CustomFieldManager.CustomFieldType.AlwaysSelected:
                    //throw new Exception("Not yet implemented");
                    break;

                default://section header - do not need any selenium action.  TODO: check if these elements exist.
                    requiresTracking = false;
                    break;
            }

            if (requiresTracking)
            {
                this.FillCustomFieldResponseList(
                    this.CurrentRegistrationId,
                    this.customFieldResponses,
                    customFieldId,
                    description,
                    customFieldCategory,
                    response,
                    amount.ToString(),
                    null);
            }
        }
 partial void DeleteCustom_Field(Custom_Field instance);
 partial void UpdateCustom_Field(Custom_Field instance);
 partial void InsertCustom_Field(Custom_Field instance);
		private void detach_Custom_Fields(Custom_Field entity)
		{
			this.SendPropertyChanging();
			entity.Custom_Field_Type = null;
		}
		private void attach_Custom_Fields(Custom_Field entity)
		{
			this.SendPropertyChanging();
			entity.Event = this;
		}