Query form responses
You can retrieve a single or all responses to a form by querying via specific criterion. You can get responses by:
- Response ID
- A specific form name
- Get all responses
Query form response by response ID
To find a specific form response, you use the FormsManager instance and the GetFormEntrymethod. The method has two parameters - entryTypeand entryId. The following code demonstrates how to find a specific form response by response ID. If there is no form response with the specified ID, the result is null. If there is a form response with the specified ID, the method retrieves the entryType and gets the form entry by entryId:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Forms.Model;
using Telerik.Sitefinity.Modules.Forms;
namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.Forms
{
public partial class FormsSnippets
{
public static FormEntry GetFormResponseById(Guid entryId)
{
FormsManager formsManager = FormsManager.GetManager();
var form = formsManager.GetFormByName("sf_testform1");
if (form != null)
{
string entryType = String.Format("{0}.{1}", formsManager.Provider.FormsNamespace, form.Name);
return formsManager.GetFormEntry(entryType, entryId);
}
else return null;
}
}
}
Query all form responses for a specific form
You can retrieve all responses for a specific form by querying the responses via form name or form ID. To retrieve all responses for a specific form, you use the FormsManager class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Forms.Model;
using Telerik.Sitefinity.Modules.Forms;
namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.Forms
{
public partial class FormsSnippets
{
public static IQueryable<FormEntry> GetFormResponsesForSpecificForm(string formName)
{
FormsManager formsManager = FormsManager.GetManager();
//here you can also use the GetForm(Guid id) method of the formsManager the get a specific form
var form = formsManager.GetFormByName(formName);
if (form != null)
{
return formsManager.GetFormEntries(new FormDescription(form.Name));
}
return null;
}
}
}
In the code above, you first initialize the FormsManager class. Next, you call the GetFormByName method to retrieve the required form. You can also use the GetFormmethod by specifying the ID of the form instead of using the form name the name. Once the specified form is retrieved, you call the GetFormEntries method. This method requires a FormDescriptioninstance as parameter. You can create an instance of the FormDescriptionand pass the form name in the constructor as is demonstrated by the code above.
Get all form responses
To retrieve all responses for all forms, you use the FormsManager class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Forms.Model;
using Telerik.Sitefinity.Modules.Forms;
namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.Forms
{
public partial class FormsSnippets
{
public static IQueryable<FormEntry> GetAllFormResponses(string entryType)
{
FormsManager formsManager = FormsManager.GetManager();
return formsManager.GetFormEntries(entryType);
}
}
}
In the code above, you first initialize the FormsManager class. Next, you call the GetFormEntriesmethod to retrieve all form response entries by passing the entryType parameter.