Delete form responses
You can delete form responses by specifying any of the form properties as delete criterion. For example, you can delete only the form responses created by a specific user.
To delete a specific form response, you use the FormsManager class and call the Delete method passing the form entry as a parameter. The following code deletes a form response with the specified userId via Sitefinity CMS Native API:
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;
using Telerik.Sitefinity.Security.Claims;
namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.Forms
{
public partial class FormsSnippets
{
public static void DeleteFormResponse(Guid entryId, string formName)
{
//gets an instance of the forms manager
FormsManager formsManager = FormsManager.GetManager();
string entryType = String.Format("{0}.{1}", formsManager.Provider.FormsNamespace, formName);
//gets the current user id
var userId = ClaimsManager.GetCurrentUserId();
//get a specific form response by type and userId
FormEntry formEntry = formsManager.GetFormEntries(entryType).Where(a => a.UserId == userId).FirstOrDefault();
if (formEntry != null)
{
//deletes the form response
formsManager.Delete(formEntry);
formsManager.SaveChanges();
}
}
}
}
In the code above, you first get an instance of the FormsManager class. Next, you filter response entries by getting the current user ID. You use LINQ query to filter the form entries and the GetFormEntries method of the FormsManager class. Finally, if the form response entry is not null, you use the Deletemethod to remove the response.