Form data
List of examples:
- Adding data records to a form and sending email notifications
- Loading data records from a form
- Updating the data records of a form
- Deleting form data records
Adding data records to a form and sending email notifications
// Gets the form object representing the 'ContactUs' form on the current site
BizFormInfo formObject = BizFormInfo.Provider.Get("ContactUs", SiteContext.CurrentSiteID);
if (formObject != null)
{
// Gets the class name of the 'ContactUs' form
DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID);
string formClassName = formClass.ClassName;
// Creates a new data record for the form
BizFormItem newFormItem = BizFormItem.New(formClassName);
// Sets the values for the form's fields (UserMessage in this case)
newFormItem.SetValue("UserMessage", "This is a message submitted through the API.");
// Saves the new form record into the database
// Set values for all 'Required' fields in the form before calling the Insert method, otherwise an exception will occur
newFormItem.Insert();
// Obtains a factory object used to create a form notification sender service for the given form
IBizFormMailSenderFactory senderFactory = Service.Resolve<IBizFormMailSenderFactory>();
// Creates an instance of the form notification sender for the inserted form item
IBizFormMailSender sender = senderFactory.GetFormMailSender(formObject, newFormItem);
// Sends a notification email to users (as specified on the form's 'Email notification' tab)
sender.SendNotificationEmail();
// Sends a confirmation email to the submitter (based on the form's autoresponder settings)
sender.SendConfirmationEmail();
}
Loading data records from a form
// Gets the form object representing the 'ContactUs' form on the current site
BizFormInfo formObject = BizFormInfo.Provider.Get("ContactUs", SiteContext.CurrentSiteID);
if (formObject != null)
{
// Gets the class name of the 'ContactUs' form
DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID);
string formClassName = formClass.ClassName;
// Loads the form's data
ObjectQuery<BizFormItem> data = BizFormItemProvider.GetItems(formClassName);
// Loops through the form's data records
foreach (BizFormItem item in data)
{
// Gets the values of the 'UserEmail' and 'UserMessage' text fields for the given data record
string emailFieldValue = item.GetStringValue("UserEmail", "");
string messageFieldValue = item.GetStringValue("UserMessage", "");
}
}
Updating the data records of a form
// Gets the form object representing the 'ContactUs' form on the current site
BizFormInfo formObject = BizFormInfo.Provider.Get("ContactUs", SiteContext.CurrentSiteID);
if (formObject != null)
{
// Gets the class name of the 'ContactUs' form
DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID);
string formClassName = formClass.ClassName;
// Loads all data records from the form whose 'UserEmail' field ends with the ".net" suffix
ObjectQuery<BizFormItem> data = BizFormItemProvider.GetItems(formClassName)
.WhereEndsWith("UserEmail", ".net");
// Loops through the form's data records
foreach (BizFormItem item in data)
{
// Assigns and saves a value for the form record's 'InternalNote' field
item.SetValue("InternalNote", "This note was added by the system.");
item.SubmitChanges(false);
}
}
Deleting form data records
// Gets the form object representing the 'ContactUs' form on the current site
BizFormInfo formObject = BizFormInfo.Provider.Get("ContactUs", SiteContext.CurrentSiteID);
if (formObject != null)
{
// Gets the class name of the 'ContactUs' form
DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID);
string formClassName = formClass.ClassName;
// Loads all data records from the form that have an empty value in the 'UserMessage' field
ObjectQuery<BizFormItem> data = BizFormItemProvider.GetItems(formClassName)
.WhereEmpty("UserMessage");
// Loops through the form's data records
foreach (BizFormItem item in data)
{
// Deletes all files stored in the form's fields
BizFormInfoProvider.DeleteBizFormRecordFiles(formClass.ClassFormDefinition, item, SiteContext.CurrentSiteName);
// Deletes the form record from the database
item.Delete();
}
}