Esempio n. 1
0
        public void ScrollDownMessages()
        {
            var iScrollableType = typeof(IScrollable);

            Listeners.Where(listener => iScrollableType.IsAssignableFrom(listener.GetType()))
            .ToList().ForEach(scrollable => ((IScrollable)scrollable).ScrollDown());
        }
Esempio n. 2
0
 public override Listener Find(string hostId)
 {
     if (hostId == null)
     {
         throw new ArgumentNullException("Find.hostName");
     }
     return(Listeners.Where(q => q.Source.HostId == hostId).FirstOrDefault <Listener>());
 }
Esempio n. 3
0
 private void ListenerDo(Action <IViewportEventListener> action)
 {
     foreach (var listener in Listeners.Where(x => x.IsActive()).OrderBy(x => x.OrderHint))
     {
         try
         {
             action(listener);
         }
         catch (Exception ex)
         {
             OnListenerException(ex);
         }
     }
 }
Esempio n. 4
0
 private void ListenerDoEvent(ViewportEvent e, Action <IViewportEventListener, ViewportEvent> action)
 {
     foreach (var listener in Listeners.Where(x => x.IsActive()).OrderBy(x => x.OrderHint))
     {
         try
         {
             action(listener, e);
         }
         catch (Exception ex)
         {
             OnListenerException(ex);
         }
         if (e.Handled)
         {
             break;
         }
     }
 }
Esempio n. 5
0
        /// <summary>
        /// Subscribe to size changes of the browser window using the provided options
        /// </summary>
        /// <param name="callback">The method (callbacK) that is invoke as soon as the size of the window has changed</param>
        /// <param name="options"></param>
        /// <returns>The subscription id. This id is needed for unscribe</returns>
        public async Task <Guid> Subscribe(Action <BrowserWindowSize> callback, ResizeOptions options)
        {
            if (callback is null)
            {
                throw new ArgumentNullException(nameof(callback));
            }

            options ??= _options;

            if (DotNetRef == null)
            {
                DotNetRef = DotNetObjectReference.Create(this);
            }

            var existingOptionId = Listeners.Where(x => x.Value.Option == options).Select(x => x.Key).FirstOrDefault();

            if (existingOptionId == default)
            {
                var subscriptionInfo = new ResizeServiceSubscriptionInfo(options);
                var subscriptionId   = subscriptionInfo.AddSubscription(callback);
                var listenerId       = Guid.NewGuid();

                Listeners.Add(listenerId, subscriptionInfo);

                try
                {
                    await JsRuntime.InvokeVoidAsync($"mudResizeListenerFactory.listenForResize", DotNetRef, options, listenerId);
                }
                catch (TaskCanceledException)
                {
                    // no worries here
                }

                return(subscriptionId);
            }
            else
            {
                var entry          = Listeners[existingOptionId];
                var subscriptionId = entry.AddSubscription(callback);

                return(subscriptionId);
            }
        }