Как сделать отмену сохранения entity?
Реализую пример из руководства Бизнес-логика объектов.
namespace Terrasoft.Configuration.VSSales { using System.Threading; using Terrasoft.Core; using Terrasoft.Core.Entities; using Terrasoft.Core.Entities.AsyncOperations; using Terrasoft.Core.Entities.AsyncOperations.Interfaces; using Terrasoft.Core.Entities.Events; using Terrasoft.Core.Factories; /// <summary> /// Слушатель событий сущности "Коммерческие условия". /// </summary> [EntityEventListener(SchemaName = "ScPriceType")] public class ScPriceTypeEventListener : BaseEntityEventListener { /// <summary> /// Обработчик события перед сохранением записи. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void OnSaving(object sender, EntityBeforeEventArgs e) { var entity = (Entity)sender; var userConnection = entity?.UserConnection; var foo = false; // Здесь будет проверка на условие. if (foo) { // Всё нормально, сохраняем. base.OnSaving(sender, e); } else { // Условие не выполнено, отмена. // Что здесь надо написать? sender = null; // Не сработало. } } } }
Нравится
2 комментария
Лучший ответ
18 декабря 2020 12:36
Добрый день.
Для отмены сохранения попробуйте написать такую строчку:
e.IsCanceled = false;
18 декабря 2020 12:36
Добрый день.
Для отмены сохранения попробуйте написать такую строчку:
e.IsCanceled = false;
18 декабря 2020 13:57
Спасибо, работает.
public override void OnSaving(object sender, EntityBeforeEventArgs e) { var entity = (Entity)sender; var userConnection = entity?.UserConnection; if (CheckRules(userConnection, entity)) { // Всё нормально, сохраняем. base.OnSaving(sender, e); } else { // Условие не выполнено, отмена. if (!(entity is null)) { // Вот так работает отмена сохранения записи. e.IsCanceled = true; } } }
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать