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; }