Изменение информации WFFM с помощью С#

Мы настроили простую форму с помощью веб-форм для маркетологов на нашем сайте Sitecore 6.4.0. Форма отлично регистрирует информацию, и мы написали страницу, позволяющую конечным пользователям просматривать результаты, используя код из http://r-coding-sitecoreblog.blogspot.com/2011/11/extracting-data-from-sitecore-wffm.html в основном.

Следующим шагом в прогрессии является предоставление пользователю возможности утвердить/отклонить отправку и либо передать информацию об этой отправке формы методу, либо удалить эту отправку формы целиком.

Есть ли способ удалить отправку формы из базы данных WFFM с помощью С#? Я пробовал метод Sitecore.Forms.Data.DataManager.DeleteForms() безуспешно, и я подозреваю, что он удаляет всю форму, а не только отправку отдельной формы.

РЕДАКТИРОВАТЬ: Кроме того, я мог бы даже установить флаг для отправки отдельной формы, пометить ее как одобренную/отклоненную и просто обработать логику отображения/скрытия в моем коде. Таким образом, установка значения для конкретной отправки формы также будет работать.


person sottenad    schedule 20.09.2012    source источник


Ответы (1)


Вы также всегда можете задавать вопросы, связанные с использованием моих примеров кода, в моем блоге :-)

Вы на правильном пути, используя класс Datamanager. Вот пример, который удаляет все записи/отправки для формы (одну за другой).

Он НЕ удалит саму форму. Только отправленные записи базы данных.

        string formID = ConfigurationManager.AppSettings["FormDataUploadID"].ToString(); 

        List<GridFilter> args = new List<Sitecore.Web.UI.Grids.GridFilter>();
        args.Add(new GridFilter("storageName", string.Empty, GridFilter.FilterOperator.Contains));
        args.Add(new GridFilter("dataKey", formID, GridFilter.FilterOperator.Contains));

        var submits = Sitecore.Forms.Data.DataManager.GetForms().GetPage(new PageCriteria(0, 0x7ffffffe), null, args);

        /// Create a Collection to Loop
        List<IForm> formlist = submits.ToList();

        /// Loop all forms from Database and delete each entry.
        foreach (IForm frm in formlist)
        {
            Sitecore.Forms.Data.DataManager.DeleteForms(new Sitecore.Data.ID(frm.FormItemId), frm.StorageName);
        }
person Lasse Rasch    schedule 04.11.2012