/// <summary> /// Raises the <see cref="Deleting"/> event. /// </summary> /// <param name="args">The <see cref="NIntegrate.Web.EventArgs.DataSourceDeletingEventArgs"/> instance containing the event data.</param> internal void OnDeleting(DataSourceDeletingEventArgs args) { if (Deleting != null) { Deleting(this, args); } }
protected override int ExecuteDelete(IDictionary keys, IDictionary oldValues) { if (_owner.Criteria == null) { throw new ArgumentException("Missing QueryTableType or Criteria setting on QueryDataSource"); } if (keys == null || keys.Count == 0) { throw new ArgumentNullException("keys"); } var deletingArgs = new DataSourceDeletingEventArgs(GetReadOnlyDictionary(keys), oldValues); _owner.OnDeleting(deletingArgs); if (deletingArgs.Cancel) { return(0); } if (_owner.ConflictDetection == ConflictOptions.CompareAllValues) { DetectCompareAllValuesConflicts(oldValues, keys); } var criteria = CreateDeleteCriteria(keys); var affectedRows = _owner.QueryService.Execute(criteria, false); var statusArgs = new DataSourceStatusEventArgs(this, affectedRows); _owner.OnDeleted(statusArgs); if (affectedRows > 0) { OnDataSourceViewChanged(System.EventArgs.Empty); } return(affectedRows); }