public async Task <IHttpActionResult> PutEventOwner(int id, EventOwner eventOwner)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != eventOwner.EventOwnerId)
            {
                return(BadRequest());
            }

            db.Entry(eventOwner).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EventOwnerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Example #2
0
        public void assertGroup()
        {
            Event e = new Event()
            {
                Title       = "Test title",
                Description = "Test description",
                Start       = new DateTime(2018, 4, 6, 9, 0, 0),
                End         = new DateTime(2018, 4, 6, 9, 0, 0),
            };

            User u1 = new User()
            {
                FirstName = "Elliot",
                LastName  = "Alderson",
                Type      = backend.Types.Type.Student,
                Role      = Role.Basic,
            };

            User u2 = new User()
            {
                FirstName = "Darlene",
                LastName  = "Alderson",
                Type      = backend.Types.Type.Student,
                Role      = Role.Basic,
            };

            EventOwner eo1 = new EventOwner()
            {
                Event  = e,
                People = u1,
            };

            EventAttendee ea1 = new EventAttendee()
            {
                Event  = e,
                People = u1,
            };

            EventAttendee ea2 = new EventAttendee()
            {
                Event  = e,
                People = u2,
            };

            Group g = new Group()
            {
                Name      = "Linux Hackers",
                EventsOwn = new List <EventOwner> {
                    eo1
                },
                EventsAttend = new List <EventAttendee> {
                    ea1, ea2
                },
            };

            Assert.Equal("Linux Hackers", g.Name);
            Assert.Equal(1, g.EventsOwn.Count);
            Assert.Equal(2, g.EventsAttend.Count);
        }
Example #3
0
            public void SubscribeTwice(EventOwner eventOwner)
            {
                EventHandler h = null;

                h += OnMyEvent;
                h += OnMyEvent;
                eventOwner.MyEvent += h;
            }
Example #4
0
            public void SubscribeStaticEventTwice(EventOwner eventOwner)
            {
                EventHandler h = null;

                h += OnMyEvent;
                h += OnMyEvent;
                EventOwner.MyStaticEvent += h;
            }
Example #5
0
 public void SubscribePrivate(EventOwner e, bool stat)
 {
     if (stat)
     {
         EventOwner.MyStaticEvent += PrivateOnEvent;
     }
     else
     {
         e.MyEvent += PrivateOnEvent;
     }
 }
Example #6
0
 public void SubscribeInternal(EventOwner e, bool stat)
 {
     if (stat)
     {
         EventOwner.MyStaticEvent += InternalOnEvent;
     }
     else
     {
         e.MyEvent += InternalOnEvent;
     }
 }
Example #7
0
 public void SibscribeStatic(EventOwner e, bool stat)
 {
     if (stat)
     {
         EventOwner.MyStaticEvent += StaticOnEvent;
     }
     else
     {
         e.MyEvent += StaticOnEvent;
     }
 }
        public async Task <IHttpActionResult> GetEventOwner(int id)
        {
            EventOwner eventOwner = await db.EventOwners.FindAsync(id);

            if (eventOwner == null)
            {
                return(NotFound());
            }

            return(Ok(eventOwner));
        }
Example #9
0
 public void SibscribeAnonymousStatic(EventOwner e, bool stat)
 {
     if (stat)
     {
         EventOwner.MyStaticEvent += (s, args) => _StaticOnEvent = args != null;
     }
     else
     {
         e.MyEvent += (s, args) => _StaticOnEvent = args != null;
     }
 }
        public async Task <IHttpActionResult> PostEventOwner(EventOwner eventOwner)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.EventOwners.Add(eventOwner);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = eventOwner.EventOwnerId }, eventOwner));
        }
Example #11
0
        WeakReference MemoryCoreAlloc(Action <Subscriber2, EventOwner> subscribe, Action <Subscriber2> check, Action <EventOwner> raise)
        {
            EventOwner  e = new EventOwner();
            Subscriber2 s = new Subscriber2();

            subscribe(s, e);
            Collect();
            raise(e);
            check(s);
            s.Clear();
            return(new WeakReference(s));
        }
Example #12
0
        public void Order()
        {
            var           e    = new EventOwner();
            List <string> args = new List <string>();

            e.MyEvent2 += (s, x) => args.Add("first");
            e.MyEvent2 += (s, x) => args.Add("second");

            e.RaiseMyEvent2("test");
            Assert.AreEqual("first", args[0]);
            Assert.AreEqual("second", args[1]);
        }
Example #13
0
        public void source_is_only_subscribed_to_once_for_multiple_connections()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs = source.Prune();

            obs.Connect();
            obs.Connect();

            Assert.AreEqual(1, owner.SubscriptionCount);
        }
        public async Task <IHttpActionResult> DeleteEventOwner(int id)
        {
            EventOwner eventOwner = await db.EventOwners.FindAsync(id);

            if (eventOwner == null)
            {
                return(NotFound());
            }

            db.EventOwners.Remove(eventOwner);
            await db.SaveChangesAsync();

            return(Ok(eventOwner));
        }
Example #15
0
        WeakReference SubscribeUnsubsribeCoreAlloc(EventOwner e, object sender, PropertyChangedEventArgs args, Action raise,
                                                   Action <EventOwner, EventArgs> raiseMyEvent1, Action <EventOwner, object, EventArgs> raiseMyEvent2,
                                                   Action <Subscriber, EventOwner> subscribe, Action <Subscriber, EventOwner> subscribeTwice, Action <Subscriber, EventOwner> unsubscribe)
        {
            var s = new Subscriber();

            subscribe(s, e);
            raise();
            Assert.AreEqual(sender, s.Sender);
            Assert.AreEqual(args, s.E);
            Assert.AreEqual(1, s.Count);
            raise();
            Assert.AreEqual(sender, s.Sender);
            Assert.AreEqual(args, s.E);
            Assert.AreEqual(2, s.Count);

            s.Clear();
            subscribe(s, e);
            raise();
            Assert.AreEqual(sender, s.Sender);
            Assert.AreEqual(args, s.E);
            Assert.AreEqual(2, s.Count);

            s.Clear();
            unsubscribe(s, e);
            raise();
            Assert.AreEqual(sender, s.Sender);
            Assert.AreEqual(args, s.E);
            Assert.AreEqual(1, s.Count);

            s.Clear();
            unsubscribe(s, e);
            raise();
            Assert.AreEqual(null, s.Sender);
            Assert.AreEqual(null, s.E);
            Assert.AreEqual(0, s.Count);

            s.Clear();
            subscribeTwice(s, e);
            raise();
            Assert.AreEqual(sender, s.Sender);
            Assert.AreEqual(args, s.E);
            Assert.AreEqual(2, s.Count);
            unsubscribe(s, e);
            unsubscribe(s, e);

            unsubscribe(s, e);
            subscribe(s, e);
            return(new WeakReference(s));
        }
Example #16
0
        public void source_is_not_subscribed_to_until_connect()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs = source.Prune();

            Assert.IsFalse(owner.HasSubscriptions);

            obs.Connect();

            Assert.IsTrue(owner.HasSubscriptions);
        }
Example #17
0
    /**
     * 注册事件监听
     */
    public void RegisterEvent(string regKey, EventListener listener)
    {
        EventOwner eventOwner;

        if (_eventList.TryGetValue(regKey, out eventOwner))
        {
            eventOwner.Event += listener;
        }
        else
        {
            eventOwner        = new EventOwner();
            eventOwner.Event += listener;
            _eventList.Add(regKey, eventOwner);
        }
    }
Example #18
0
        public void source_is_unscribed_from_on_disconnect()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs        = source.Prune();
            var connection = obs.Connect();

            Assert.IsTrue(owner.HasSubscriptions);

            connection.Dispose();

            Assert.IsFalse(owner.HasSubscriptions);
        }
        void MemoryCore(Action <Subscriber2, EventOwner> subscribe, Action <Subscriber2> check, Action <EventOwner> raise)
        {
            var e = new EventOwner();
            var s = new Subscriber2();

            subscribe(s, e);
            Collect();
            raise(e);
            check(s);
            s.Clear();
            WeakReference sRef = new WeakReference(s);

            s = null;
            Collect();
            Assert.AreEqual(false, sRef.IsAlive);
        }
Example #20
0
        public void all_sources_are_unsubscribed_when_complete_is_received()
        {
            var sourceA = new EventOwner();
            var sourceC = new EventOwner();

            var obs = Observable.Amb(
                sourceA.GetObservableEvent(),
                Observable.Empty <IEvent <EventArgs> >(),
                sourceC.GetObservableEvent()
                );

            var stats = new StatsObserver <IEvent <EventArgs> >();

            obs.Subscribe(stats);

            Assert.IsFalse(sourceA.HasSubscriptions);
            Assert.IsFalse(sourceC.HasSubscriptions);
        }
Example #21
0
        public void catch_with_observer_subscribes_to_first_through_scheduler()
        {
            ManualScheduler scheduler = new ManualScheduler();

            StatsObserver <IEvent <EventArgs> > observer = new StatsObserver <IEvent <EventArgs> >();

            EventOwner owner = new EventOwner();

            Observable.FromEvent <EventArgs>(x => owner.Event += x, x => owner.Event -= x)
            .Catch(Observable.Empty <IEvent <EventArgs> >(), scheduler)
            .Subscribe(observer);

            Assert.IsFalse(owner.HasSubscriptions);

            scheduler.RunAll();

            Assert.IsTrue(owner.HasSubscriptions);
        }
Example #22
0
        public void complete_does_not_equate_to_value()
        {
            var eventOwnerA = new EventOwner();

            var observableA = Observable.FromEvent <EventArgs>(x => eventOwnerA.Event += x, x => eventOwnerA.Event -= x);

            var stats = new StatsObserver <IEvent <EventArgs> >();

            observableA
            .SkipUntil(Observable.Empty <int>())
            .Subscribe(stats);

            eventOwnerA.Fire();
            eventOwnerA.Fire();
            eventOwnerA.Fire();

            Assert.AreEqual(0, stats.NextCount);
            Assert.IsFalse(stats.CompletedCalled);
        }
Example #23
0
        public void all_sources_are_unsubscribed_when_error_is_received()
        {
            var sourceA = new EventOwner();
            var sourceB = new EventOwner();

            var obs = Observable.Amb(
                sourceA.GetObservableEvent(),
                sourceB.GetObservableEvent(),
                Observable.Throw <IEvent <EventArgs> >(new Exception())
                );

            var stats = new StatsObserver <IEvent <EventArgs> >();

            obs.Subscribe(stats);

            Assert.IsFalse(sourceA.HasSubscriptions);
            Assert.IsFalse(sourceB.HasSubscriptions);
            Assert.IsTrue(stats.ErrorCalled);
        }
Example #24
0
        public void returns_values_after_other_emits_value()
        {
            var eventOwnerA = new EventOwner();
            var eventOwnerB = new EventOwner();

            var observableA = Observable.FromEvent <EventArgs>(x => eventOwnerA.Event += x, x => eventOwnerA.Event -= x);
            var observableB = Observable.FromEvent <EventArgs>(x => eventOwnerB.Event += x, x => eventOwnerB.Event -= x);

            var stats = new StatsObserver <IEvent <EventArgs> >();

            observableA.SkipUntil(observableA)
            .Subscribe(stats);

            eventOwnerA.Fire();
            eventOwnerA.Fire();
            eventOwnerA.Fire();
            eventOwnerB.Fire();
            eventOwnerA.Fire();

            Assert.AreEqual(3, stats.NextCount);
        }
Example #25
0
        public void T846808()
        {
            var          eventOwner = new EventOwner();
            int          c1         = 0;
            int          c2         = 0;
            EventHandler h1         = null;
            EventHandler h2         = null;

            h1 = (s, e) => { c1++; eventOwner.MyEvent -= h1; };
            h2 = (s, e) => { c2++; };

            eventOwner.MyEvent += h1;
            eventOwner.MyEvent += h2;
            eventOwner.RaiseMyEvent(EventArgs.Empty);
            Assert.AreEqual(1, c1);
            Assert.AreEqual(1, c2);

            eventOwner.RaiseMyEvent(EventArgs.Empty);
            Assert.AreEqual(1, c1);
            Assert.AreEqual(2, c2);
        }
Example #26
0
        public void other_sources_are_unsubscribed_when_value_is_received()
        {
            var sourceA = new EventOwner();
            var sourceB = new EventOwner();
            var sourceC = new EventOwner();

            var obs = Observable.Amb(
                sourceA.GetObservableEvent(),
                sourceB.GetObservableEvent(),
                sourceC.GetObservableEvent()
                );

            var stats = new StatsObserver <IEvent <EventArgs> >();

            obs.Subscribe(stats);

            sourceB.Fire();

            Assert.IsFalse(sourceA.HasSubscriptions);
            Assert.IsTrue(sourceB.HasSubscriptions);
            Assert.IsFalse(sourceC.HasSubscriptions);
        }
Example #27
0
 public void RemoveEventOwner(EventOwner eventOwner)
 {
     if (eventOwner.IsUsingAwakeEarly())
     {
         eventOwnersAwakeEarly.Remove(eventOwner);
     }
     if (eventOwner.IsUsingAwakeDefault())
     {
         eventOwnersAwakeDefault.Remove(eventOwner);
     }
     if (eventOwner.IsUsingAwakeLate())
     {
         eventOwnersAwakeLate.Remove(eventOwner);
     }
     if (eventOwner.IsUsingStartEarly())
     {
         eventOwnersStartEarly.Remove(eventOwner);
     }
     if (eventOwner.IsUsingStartDefault())
     {
         eventOwnersStartDefault.Remove(eventOwner);
     }
     if (eventOwner.IsUsingStartLate())
     {
         eventOwnersStartLate.Remove(eventOwner);
     }
     if (eventOwner.IsUsingUpdateEarly())
     {
         eventOwnersUpdateEarly.Remove(eventOwner);
     }
     if (eventOwner.IsUsingUpdateDefault())
     {
         eventOwnersUpdateDefault.Remove(eventOwner);
     }
     if (eventOwner.IsUsingUpdateLate())
     {
         eventOwnersUpdateLate.Remove(eventOwner);
     }
 }
Example #28
0
        public void catch_with_observer_subscribes_to_next_through_scheduler()
        {
            ManualScheduler scheduler = new ManualScheduler();

            StatsObserver <IEvent <EventArgs> > observer = new StatsObserver <IEvent <EventArgs> >();

            EventOwner owner = new EventOwner();

            var eventObs = Observable.FromEvent <EventArgs>(x => owner.Event += x, x => owner.Event -= x);

            Observable.Throw <IEvent <EventArgs> >(new ApplicationException())
            .Catch(eventObs, scheduler)
            .Subscribe(observer);

            scheduler.RunNext();

            Assert.IsFalse(owner.HasSubscriptions);

            scheduler.RunNext();

            Assert.IsTrue(owner.HasSubscriptions);
        }
Example #29
0
    public override bool registerEvent(string ID, Type eventType)
    {
        if (eventType != null && !eventType.IsSubclassOf(typeof(IEvent)))
        {
            Debug.LogError(string.Format("EventDispatcher.registerEvent Failed, {0} is not a subclass of IEvent", eventType));
            return(false);
        }

        EventOwner ew;

        if (registers_.TryGetValue(ID, out ew))
        {
            Debug.LogError(string.Format("EventDispatcher.registerEvent Failed,{0} is allways registered", ID));
            return(false);
        }

        ew         = new EventOwner();
        ew.evtID   = ID;
        ew.evtType = eventType;
        registers_.Add(ID, ew);
        // Debug.LogError(string.Format("EventDispatcher.registerEvent Successful,ID={0},type={1}", ID, eventType));
        return(true);
    }
Example #30
0
        void SubscribeUnsubsribeCore(bool passSender, Action <EventOwner, EventArgs> raiseMyEvent1, Action <EventOwner, object, EventArgs> raiseMyEvent2,
                                     Action <Subscriber, EventOwner> subscribe, Action <Subscriber, EventOwner> subscribeTwice, Action <Subscriber, EventOwner> unsubscribe)
        {
            var    e      = new EventOwner();
            var    sender = passSender ? new object() : e;
            var    args   = new PropertyChangedEventArgs("Test");
            Action raise  = () => {
                if (passSender)
                {
                    raiseMyEvent2(e, sender, args);
                }
                else
                {
                    raiseMyEvent1(e, args);
                }
            };

            WeakReference sRef = SubscribeUnsubsribeCoreAlloc(e, sender, args, raise, raiseMyEvent1, raiseMyEvent2, subscribe, subscribeTwice, unsubscribe);

            MemoryLeaksHelper.CollectOptional(sRef);
            MemoryLeaksHelper.EnsureCollected(sRef);
            raise();
        }
Example #31
0
        public void catch_with_observer_subscribes_to_first_through_scheduler()
        {
            ManualScheduler scheduler = new ManualScheduler();

            StatsObserver<IEvent<EventArgs>> observer = new StatsObserver<IEvent<EventArgs>>();

            EventOwner owner = new EventOwner();

            Observable.FromEvent<EventArgs>(x => owner.Event += x, x => owner.Event -= x)
                .Catch(Observable.Empty<IEvent<EventArgs>>(), scheduler)
                .Subscribe(observer);

            Assert.IsFalse(owner.HasSubscriptions);

            scheduler.RunAll();

            Assert.IsTrue(owner.HasSubscriptions);
        }
Example #32
0
 public void Setup()
 {
     ev = new EventOwner();
     obs = Observable.FromEvent<EventArgs>(e => ev.Event += e, e => ev.Event -= e);
 }
Example #33
0
        public void catch_with_observer_subscribes_to_next_through_scheduler()
        {
            ManualScheduler scheduler = new ManualScheduler();

            StatsObserver<IEvent<EventArgs>> observer = new StatsObserver<IEvent<EventArgs>>();

            EventOwner owner = new EventOwner();

            var eventObs = Observable.FromEvent<EventArgs>(x => owner.Event += x, x => owner.Event -= x);

            Observable.Throw<IEvent<EventArgs>>(new ApplicationException())
                .Catch(eventObs, scheduler)
                .Subscribe(observer);

            scheduler.RunNext();

            Assert.IsFalse(owner.HasSubscriptions);

            scheduler.RunNext();

            Assert.IsTrue(owner.HasSubscriptions);
        }