Ejemplo n.º 1
0
 /// <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);
     }
 }
Ejemplo n.º 2
0
        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);
        }