Example #1
0
        public StoragePointViewModel(StoragePoint storagePoint, IEventAggregator eventAggregator) : this()
        {
            _eventAggregator           = eventAggregator;
            Name                       = storagePoint.Name;
            _storagePoint              = storagePoint;
            _insertPartEvent           = _eventAggregator.GetEvent <PubSubEvent <InsertPartEvent> >();
            _insertPartToDeliveryEvent = _eventAggregator.GetEvent <PubSubEvent <InsertPartToDeliveryEvent> >();
            _removePartEvent           = _eventAggregator.GetEvent <PubSubEvent <RemovePartFromStoragePointEvent> >();
            if (Thread.CurrentThread.IsBackground)
            {
                _insertPartEvent.Subscribe(OnInsertPart);
                _removePartEvent.Subscribe(OnRemovePart);
                _insertPartToDeliveryEvent.Subscribe(OnInsertPartToDelivery);
            }
            else
            {
                _insertPartEvent.Subscribe(OnInsertPart, ThreadOption.UIThread);
                _removePartEvent.Subscribe(OnRemovePart, ThreadOption.UIThread);
                _insertPartToDeliveryEvent.Subscribe(OnInsertPartToDelivery, ThreadOption.UIThread);
            }

            foreach (var part in storagePoint.Parts)
            {
                Parts.Add(new PartViewModel(part));
            }
        }
Example #2
0
        public SubscriptionToken Subscribe(Action <TPayload> action)
        {
            regionEventPayload = x => action(x.PayLoad);
            var token = pubSubEvent.Subscribe(regionEventPayload, ThreadOption.PublisherThread, true, Sender.ShouldListen);

            Sender.Wire.Cleanup += () => pubSubEvent.Unsubscribe(token);
            return(token);
        }
        public void ActionSubscribeChangeRegionContext(string regionName, Action <object> action)
        {
            PubSubEvent <object> changeRegionContextEvent = GetChangeRegionContextEvent(regionName);

            if (changeRegionContextEvent != null)
            {
                changeRegionContextEvent.Subscribe(action);
            }

            action(GetRegionContext(regionName));
        }
        public ShelfViewModel(Shelf shelf, IEventAggregator eventAggregator) : this()
        {
            _shelf = shelf;
            foreach (var part in shelf.Parts)
            {
                Parts.Add(new PartViewModel(part));
            }

            _addPartEvent    = eventAggregator.GetEvent <PubSubEvent <AddPartEvent> >();
            _removePartEvent = eventAggregator.GetEvent <PubSubEvent <RemovePartFromShelfEvent> >();
            if (Thread.CurrentThread.IsBackground)
            {
                _addPartEvent.Subscribe(OnPartAdded);
                _removePartEvent.Subscribe(OnPartRemoved);
            }
            else
            {
                _addPartEvent.Subscribe(OnPartAdded, ThreadOption.UIThread);
                _removePartEvent.Subscribe(OnPartRemoved, ThreadOption.UIThread);
            }
        }
        public BenchmarkDotNetRun()
        {
            var provider = new ServiceCollection().AddMessagePipe().BuildServiceProvider();

            prism       = new Prism.Events.EventAggregator().GetEvent <Message>();
            prismStrong = new Prism.Events.EventAggregator().GetEvent <Message>();

            var mdiatr = new ServiceCollection().AddMediatR(typeof(PublishOps).Assembly).BuildServiceProvider();

            medi = mdiatr.GetRequiredService <IMediator>();


            p = provider.GetRequiredService <IPublisher <Message> >();
            var s = provider.GetRequiredService <ISubscriber <Message> >();

            keyed = provider.GetRequiredService <IPublisher <Guid, Message> >();
            var keyedS = provider.GetRequiredService <ISubscriber <Guid, Message> >();

            hub = Hub.Default;

            m       = new Message();
            subject = new Subject <Message>();

            signalBus  = SetupZenject();
            easyMsgHub = new MessageHub();

            for (int i = 0; i < 8; i++)
            {
                s.Subscribe(new EmptyMessageHandler());
                prism.Subscribe(_ => { });
                prismStrong.Subscribe(_ => { }, true);
                ev += _ => { };
                subject.Subscribe(_ => { });
                hub.Subscribe <Message>(_ => { });



                keyedS.Subscribe(key, _ => { });


                easyMsgHub.Subscribe <Message>(_ => { });
            }

            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
            signalBus.Subscribe <Message>(m => { });
        }
        public CompositePresentationEventSubscription(PubSubEvent <TEventArgs> @event,
                                                      IObserver <TEventArgs> observer)
        {
            if (@event == null)
            {
                throw new ArgumentNullException("event");
            }
            if (observer == null)
            {
                throw new ArgumentNullException("observer");
            }

            this.@event   = @event;
            this.observer = observer;

            @event.Subscribe(observer.OnNext, true);
        }
 public static SubscriptionToken ShowAlbum(this PubSubEvent <UniqueAlbum> pubSubEvent, Action <UniqueAlbum> action)
 {
     return(pubSubEvent.Subscribe(action, ThreadOption.UIThread));
 }
Example #8
0
        public unsafe PublishOps()
        {
            var provider = new ServiceCollection().AddMessagePipe().BuildServiceProvider();

            prism       = new Prism.Events.EventAggregator().GetEvent <Message>();
            prismStrong = new Prism.Events.EventAggregator().GetEvent <Message>();

            var mdiatr = new ServiceCollection().AddMediatR(typeof(PublishOps).Assembly).BuildServiceProvider();

            medi = mdiatr.GetRequiredService <IMediator>();


            p = provider.GetRequiredService <IPublisher <Message> >();
            var s = provider.GetRequiredService <ISubscriber <Message> >();

            keyed = provider.GetRequiredService <IPublisher <Guid, Message> >();
            var keyedS = provider.GetRequiredService <ISubscriber <Guid, Message> >();

            hub = Hub.Default;



            var px = new ServiceCollection().AddMessagePipe().BuildServiceProvider();

            filter1 = px.GetRequiredService <IPublisher <Message> >();
            var filter1Sub = px.GetRequiredService <ISubscriber <Message> >();

            var px2 = new ServiceCollection().AddMessagePipe().BuildServiceProvider();

            filter2 = px2.GetRequiredService <IPublisher <Message> >();
            var filter2Sub = px2.GetRequiredService <ISubscriber <Message> >();

            m       = new Message();
            subject = new Subject <Message>();

            signalBus  = SetupZenject();
            easyMsgHub = new MessageHub();

            asyncP = provider.GetRequiredService <IAsyncPublisher <Message> >();
            asyncS = provider.GetRequiredService <IAsyncSubscriber <Message> >();


#if WinBenchmark
            mvvmLight       = new Messenger();
            mvvmLightStrong = new Messenger();
#endif

            toolkitStrong = new Microsoft.Toolkit.Mvvm.Messaging.StrongReferenceMessenger();
            toolkitWeak   = new Microsoft.Toolkit.Mvvm.Messaging.WeakReferenceMessenger();



            simpleArray    = new PlainAction[8];
            actionDelegate = new Action[8];
            interfaceArray = new IInvoke[8];


            for (int i = 0; i < 8; i++)
            {
                s.Subscribe(new EmptyMessageHandler());
                prism.Subscribe(lambdaRef.Delegate);
                prismStrong.Subscribe(_ => { }, true);
                ev += _ => { };
                subject.Subscribe(_ => { });
                hub.Subscribe <Message>(_ => { });

#if WinBenchmark
                UniRx.MessageBroker.Default.Receive <Message>().Subscribe(new NopObserver());
                mvvmLight.Register <Message>(this, _ => { }, false);
                // mvvmLightStrong.Register<Message>(this, _ => { }, true);
#endif

                keyedS.Subscribe(key, _ => { });

                filter1Sub.Subscribe(new EmptyMessageHandler(), new EmptyMessageHandlerFilter());
                filter2Sub.Subscribe(new EmptyMessageHandler(), new EmptyMessageHandlerFilter(), new EmptyMessageHandlerFilter());

                easyMsgHub.Subscribe <Message>(_ => { });

                simpleArray[i]    = new PlainAction();
                actionDelegate[i] = new PlainAction().DelegateAction;
                interfaceArray[i] = new PlainAction();

                asyncS.Subscribe((_, _) => default(ValueTask));

                toolkitStrong.Register <Message>(new object(), lambdaRef2.Delegate);
                toolkitWeak.Register <Message>(new object(), lambdaRef2.Delegate);
            }

            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
            signalBus.Subscribe <Message>(_ => { });
        }
Example #9
0
 /// <summary>
 /// Метод подписки на событие с использованием адаптера.
 /// </summary>
 public static SubscriptionToken Subscribe <TPayload>(this PubSubEvent <TPayload> targetEvent, IEventHandler <TPayload> handler, ThreadOption threadOption)
 {
     return(targetEvent.Subscribe(handler.Handle, threadOption, true));            //true для того, чтобы handler не умирал
 }