public void OnEvent(object sender, CancellableObjectEventArgs
                                args)
            {
                var obj = args.Object;

                Assert.IsFalse(obj is IObjectContainer);
            }
示例#2
0
        // #example: Validation support
        private static void ValidateObject(object sender,
                                           CancellableObjectEventArgs eventInfo)
        {
            ValidationContext context = new ValidationContext(eventInfo.Object, null, null);

            // This throws when the object isn't valid.
            Validator.ValidateObject(eventInfo.Object, context, true);
        }
示例#3
0
            public void OnEvent(object sender, CancellableObjectEventArgs
                                args)
            {
                var obj = args.Object;

                if (obj is NonActivatableItem)
                {
                    ((ICancellableEventArgs)args).Cancel();
                }
            }
示例#4
0
            void registry_Updating(object sender, CancellableObjectEventArgs args)
            {
                ITimestampable timestampable = args.Object as ITimestampable;

                if (timestampable == null)
                {
                    return;
                }

                timestampable.Updated = DateTime.Now;
            }
示例#5
0
        static void eventRegistry_Validate(object sender, CancellableObjectEventArgs args)
        {
            ObjectValidator ovr     = GetObjectValidator(args.Object);
            bool            isValid = ovr.IsValid(args.Object);

            if (!isValid)
            {
                args.Cancel();
                ovr.Validate(args.Object);
            }
        }
示例#6
0
            public void OnEvent(object sender, Db4objects.Db4o.Events.CancellableObjectEventArgs
                                args)
            {
                CancellableObjectEventArgs cancellable = (CancellableObjectEventArgs)args;

                if (cancellable.Object is Page)
                {
                    Page page = (Page)cancellable.Object;
                    if (!page.IsDirty())
                    {
                        cancellable.Cancel();
                    }
                }
            }
示例#7
0
            public void OnEvent(object sender, CancellableObjectEventArgs
                                args)
            {
                var cancellable = args;

                if (cancellable.Object is Page)
                {
                    var page = (Page)cancellable.Object;
                    if (!page.IsDirty())
                    {
                        cancellable.Cancel();
                    }
                }
            }
        internal virtual bool TriggerCancellableObjectEventArgsInCallback(Transaction transaction
                                                                          , System.EventHandler <CancellableObjectEventArgs> e, IObjectInfo objectInfo, object
                                                                          o)
        {
            if (!(e != null))
            {
                return(true);
            }
            CancellableObjectEventArgs args = new CancellableObjectEventArgs(transaction, objectInfo
                                                                             , o);

            WithExceptionHandlingInCallback(new _IRunnable_260(e, args));
            return(!args.IsCancelled);
        }
示例#9
0
        // #example: Referential integrity
        private static void ReferentialIntegrityCheck(object sender,
                                                      CancellableObjectEventArgs eventArguments)
        {
            object toDelete = eventArguments.Object;

            if (toDelete is Pilot)
            {
                IObjectContainer  container = eventArguments.ObjectContainer();
                IEnumerable <Car> cars      = from Car c in container
                                              where c.Pilot == toDelete
                                              select c;
                if (cars.Count() > 0)
                {
                    eventArguments.Cancel();
                }
            }
        }
示例#10
0
            public void OnEvent(object sender, CancellableObjectEventArgs
                                args)
            {
                var obj = args.Object;

                if (!(obj is Item))
                {
                    return;
                }
                var transaction = (Transaction)args.Transaction
                                      ();
                var container = transaction.ObjectContainer();
                var foo       = (Item)obj;
                var child     = foo._child;

                if (isNetworking)
                {
                    container.Activate(child, 1);
                }
                child._name += "*";
                container.Store(child);
            }
示例#11
0
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
     called.value     = true;
     foundTrans.value = args.Transaction();
 }
 public _IRunnable_260(System.EventHandler <CancellableObjectEventArgs> e, CancellableObjectEventArgs
                       args)
 {
     this.e    = e;
     this.args = args;
 }
示例#13
0
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
 }
 void OnCreating(object sender, CancellableObjectEventArgs args)
 {
     _events.Add("Creating");
     Assert.IsFalse(args.IsCancelled);
     args.Cancel();
 }
示例#15
0
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
     Assert.Expect(typeof(InvalidOperationException), new _ICodeBlock_18(executed, args
                                                                         ));
 }
示例#16
0
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
     ((ICancellableEventArgs)args).Cancel();
 }
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
     throw new Exception();
 }
示例#18
0
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
     _enclosing.AssertClientTransaction(args);
     activationLog.xing = true;
 }
示例#19
0
 public void OnEvent(object sender, CancellableObjectEventArgs
                     args)
 {
     deletionLog.xing = true;
     _enclosing.AssertItemIsActive(args);
 }