Esempio n. 1
0
        private void OnPushedHandle(RemoteEventArgs e)
        {
            RemoteCallback handler = PushedHandle;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 从契约中反序列化取参数列表。
        /// </summary>
        /// <param name="theRemoteEven">方法数据契约。</param>
        /// <returns>参数列表。</returns>
        private static RemoteEventArgs <T> GetEventArgs <T>(EventDC theRemoteEven) where T : class, new()
        {
            RemoteEventArgs <T> Args = new RemoteEventArgs <T>();

            Args.EventName = theRemoteEven.EventName;

            Type   relType = Type.GetType(theRemoteEven.Message.TypeQualifiedName);
            object value   = Serializer.Deserialize(theRemoteEven.Message.JsonValue, relType);

            return(Args);
        }
Esempio n. 3
0
 private void OnRemoteAdded(object sender, RemoteEventArgs e)
 {
     _fetchButton.DropDown.Items.Add(GuiItemFactory.GetFetchFromItem <ToolStripMenuItem>(e.Object, "{1}"));
     _pullButton.DropDown.Items.Add(GuiItemFactory.GetPullFromItem <ToolStripMenuItem>(e.Object, "{1}"));
     if (_repository.Remotes.Count == 1)
     {
         _fetchButton.Enabled = true;
         _pullButton.Enabled  = true;
         _pushButton.Enabled  = true;
     }
 }
        public void Clear(object sender, EventArgs args)
        {
            RemoteEventArgs <ClearCacheArgs> clearCacheArgs = args as RemoteEventArgs <ClearCacheArgs>;

            if (clearCacheArgs != null)
            {
                SiteContext siteContext = Factory.GetSite(clearCacheArgs.Event.CacheSiteLangKeys.SiteName);
                foreach (var htmlCacheKey in clearCacheArgs.Event.CacheSiteLangKeys.HtmlCacheKeys)
                {
                    CacheManager.GetHtmlCache(siteContext)?.RemoveKeysContaining(htmlCacheKey);
                }
            }
        }
Esempio n. 5
0
        private static void OnClick(object sender, RemoteEventArgs e)
        {
            Log.Write("MPTray: OnClick");
            if (e.Button != RemoteButton.Start)
            {
                return;
            }

            Process[] processes = Process.GetProcessesByName("mediaportal");

            if (processes.Length != 0)
            {
                if (processes.Length > 1)
                {
                    Log.Write("MPTray: More than one window named \"MediaPortal\" has been found!");
                    foreach (Process procName in processes)
                    {
                        Log.Write("MPTray: {0} (Started: {1}, ID: {2})", procName.ProcessName,
                                  procName.StartTime.ToShortTimeString(), procName.Id);
                    }
                }
                Log.Write("MPTray: MediaPortal is already running - switching focus.");
                SwitchFocus();
            }
            else
            {
                try
                {
                    Uri uri = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase);

                    Process process = new Process
                    {
                        StartInfo =
                        {
                            FileName         = "mediaportal.exe",
                            WorkingDirectory = Path.GetDirectoryName(uri.LocalPath),
                            UseShellExecute  = true
                        }
                    };

                    Log.Write("MPTray: starting MediaPortal");
                    process.Start();
                }
                catch (Exception ex)
                {
                    Log.Write("MPTray: Error starting MediaPortal {0}", ex.Message);
                }
            }
        }
        public int Recieve(RemoteEventArgs arg)
        {
            //Dabom .CommManager .View.CommPresenter .CommService .
//            if (eTagRecieve != null) eTagRecieve(this, arg);
            if (arg.GetType().Equals(typeof(Dabom.TagAdapter.Item.TagItem)))
            {
                ((Dabom.TagAdapter.Item.TagItem)arg).RecieveTimeSet = true;
            }
            lock (RecieveQ)
            {
                RecieveQ.Enqueue(arg);
                //Program.form1.Recieve(this, arg);
            }
            return(1);
        }
Esempio n. 7
0
 private void OnRemoteRemoved(object sender, RemoteEventArgs e)
 {
     if (SynchronizeInvoke.InvokeRequired)
     {
         try
         {
             SynchronizeInvoke.BeginInvoke(new Action <Remote>(OnRemoteRemoved), new object[] { e.Object });
         }
         catch (ObjectDisposedException)
         {
         }
     }
     else
     {
         OnRemoteRemoved(e.Object);
     }
 }
Esempio n. 8
0
 private void OnRemoteRenamed(object sender, RemoteEventArgs e)
 {
     foreach (ToolStripItem item in _fetchButton.DropDownItems)
     {
         if (item.Tag == e.Object)
         {
             item.Text = e.Object.Name;
             break;
         }
     }
     foreach (ToolStripItem item in _pullButton.DropDownItems)
     {
         if (item.Tag == e.Object)
         {
             item.Text = e.Object.Name;
             break;
         }
     }
 }
Esempio n. 9
0
        public void HandleEvent(RemoteEventArgs eventArgs)
        {
            var    arr       = eventArgs.EventData.Data as JArray;
            string GroupType = string.Empty;

            foreach (var item in arr)
            {
                if (item["Id"] != null && !string.IsNullOrEmpty(item["Id"].ToString()))
                {
                    GroupType = item["Id"].ToString();

                    var config = manger.AllConfig.FirstOrDefault(e => e.GroupType.Equals(GroupType, StringComparison.OrdinalIgnoreCase));
                    if (config != null)
                    {
                        manger.SetValue(config, manger.ConfigService.GetAllOptions(GroupType));
                    }
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 远程事件的播送方法。
        /// </summary>
        /// <param name="sender">发送者。这个参数用于计算响应者路由但不会发往远程响应端。</param>
        /// <param name="args">参数,参数将传弟到响应端。要发给远程响应端的数据必须放在这个参数中。</param>
        public void CastEvent <T>(object sender, RemoteEventArgs <T> args) where T : class, new()
        {
            Type    senderType = sender.GetType();
            EventDC evData     = new EventDC();

            evData.EventKey = Guid.NewGuid().ToString("N");

            if (senderType.GetEvent(args.EventName) != null || senderType.GetEvent(args.EventName).EventHandlerType.FullName == typeof(RemoteEventHandler <>).FullName)
            {
                evData.EventName = args.EventName;
            }
            else
            {
                throw new Exception("不存在RemoteEventHandler型事件" + evData.EventName);
            }

            Type[]      interfaces           = senderType.GetInterfaces();
            List <Type> inheritInterfaceList = interfaces.Where(ww => (ww.GetMembers().Select(ss => ss.Name)).Contains(args.EventName)).ToList();

            if (inheritInterfaceList.Count != 1)
            {
                throw new Exception("不存在或多于一个事件发送者所继承的接口中声名事件" + evData.EventName);
            }
            else
            {
                evData.SenderInterfaceName = inheritInterfaceList.First().FullName;
            }

            ParameterDC Message = new ParameterDC();

            Message.TypeQualifiedName = args.Message.GetType().AssemblyQualifiedName;
            Message.JsonValue         = ServiceTaker.GetService <IJsonSerializer>().Serialize(args.Message);

            evData.Message        = Message;
            evData.SenderTypeName = senderType.FullName;

            IEventOC evOperation = ServiceTaker.GetRemoteService <IEventOC>();

            evOperation.CastRemoteEvent(evData);
        }
Esempio n. 11
0
 private static void OnNetTcpCallback(object sender, RemoteEventArgs e)
 {
     try
     {
         RemoteService proxy = sender as RemoteService;
         if (proxy == null)
         {
             return;
         }
         using (var ms = new MessageStructure(e.Data))
         {
             var head = ms.ReadHeadGzip();
             if (head != null)
             {
                 var package = proxy.Find(head.MsgId);
                 if (package != null)
                 {
                     package.ErrorCode = head.ErrorCode;
                     package.ErrorInfo = head.ErrorInfo;
                     package.Message   = ms.ReadBuffer();
                     proxy.Remove(head.MsgId);
                     package.OnCallback();
                 }
                 else
                 {
                     proxy.OnPushedHandle(e);
                 }
             }
             else
             {
                 proxy.OnErrorHandle(e);
             }
         }
     }
     catch (Exception ex)
     {
         TraceLog.WriteError("OnNetTcpCallback error:{0}", ex);
     }
 }
Esempio n. 12
0
        public void Clear(object sender, EventArgs args)
        {
            RemoteEventArgs <ClearCacheArgs> clearCacheArgs = args as RemoteEventArgs <ClearCacheArgs>;

            if (clearCacheArgs != null)
            {
                SiteContext siteContext = Factory.GetSite(clearCacheArgs.Event.CacheSiteLangKeys.SiteName);
                if (siteContext != null)
                {
                    if (!string.IsNullOrEmpty(clearCacheArgs.Event.CacheSiteLangKeys.SiteLang))
                    {
                        var stringToMatch = string.Format("#lang:{0}", clearCacheArgs.Event.CacheSiteLangKeys.SiteLang);

                        CacheManager.GetHtmlCache(siteContext)?.RemoveKeysContaining(stringToMatch);
                    }
                    else
                    {
                        CacheManager.GetHtmlCache(siteContext).Clear();
                    }
                }
            }
        }
        private bool LoadDisplay()
        {
            RemoteEventArgs arg = null;

            if (RecieveQ.Count > 0)
            {
                lock (RecieveQ)
                {
                    while (RecieveQ.Count > 0)
                    {
                        arg = RecieveQ.Dequeue();
                        NetRemoting.Recieve(this, arg);
                        //Program.form1.
                        //Console.WriteLine(arg);
                    }
                }
                return(false);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 14
0

        
Esempio n. 15
0
 private void OnReceived(object sender, RemoteEventArgs e)
 {
     msg = Encoding.UTF8.GetString(e.Data);
 }
Esempio n. 16
0
        /// <summary>
        /// Evaluate button press from remote
        /// </summary>
        /// <param name="button">Remote Button</param>
        private void OnRemoteClick(object sender, RemoteEventArgs e)
        //RemoteButton button)
        {
            RemoteButton button = e.Button;

            if (logVerbose)
            {
                Log.Info("MCE: Incoming button command: {0}", button);
            }

            // Set LastHidRequest, otherwise the HID handler (if enabled) would react on some remote buttons (double execution of command)
            switch (button)
            {
            case RemoteButton.Record:
                InputDevices.LastHidRequest = AppCommands.MediaRecord;
                break;

            case RemoteButton.Stop:
                InputDevices.LastHidRequest = AppCommands.MediaStop;
                break;

            case RemoteButton.Pause:
                InputDevices.LastHidRequest = AppCommands.MediaPause;
                break;

            case RemoteButton.Rewind:
                InputDevices.LastHidRequest = AppCommands.MediaRewind;
                break;

            case RemoteButton.Play:
                InputDevices.LastHidRequest = AppCommands.MediaPlay;
                break;

            case RemoteButton.Forward:
                InputDevices.LastHidRequest = AppCommands.MediaFastForward;
                break;

            case RemoteButton.Replay:
                InputDevices.LastHidRequest = AppCommands.MediaPreviousTrack;
                break;

            case RemoteButton.Skip:
                InputDevices.LastHidRequest = AppCommands.MediaNextTrack;
                break;

            case RemoteButton.Back:
                InputDevices.LastHidRequest = AppCommands.BrowserBackward;
                break;

            case RemoteButton.ChannelUp:
                return; // Don't handle this command, benefit from OS' repeat handling instead

            case RemoteButton.ChannelDown:
                return; // Don't handle this command, benefit from OS' repeat handling instead

            case RemoteButton.Mute:
                InputDevices.LastHidRequest = AppCommands.VolumeMute;
                break;

            case RemoteButton.VolumeUp:
                return; // Don't handle this command, benefit from OS' repeat handling instead

            case RemoteButton.VolumeDown:
                return; // Don't handle this command, benefit from OS' repeat handling instead
            }

            // Get & execute Mapping
            if (_inputHandler.MapAction((int)button))
            {
                if (logVerbose)
                {
                    Log.Info("MCE: Command \"{0}\" mapped", button);
                }
            }
            else if (logVerbose)
            {
                Log.Info("MCE: Command \"{0}\" not mapped", button);
            }
        }
Esempio n. 17
0
        /// <summary>
        /// Evaluate button press from remote
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="e">Arguments</param>
        private void OnRemoteClick(object sender, RemoteEventArgs e)
        {
            RemoteButton remoteButton = e.Button;

            // Set LastHidRequest, otherwise the HID handler (if enabled) would react on some remote buttons (double execution of command)
            switch (remoteButton)
            {
            case RemoteButton.Record:
                InputDevices.LastHidRequest = AppCommands.MediaRecord;
                break;

            case RemoteButton.Stop:
                InputDevices.LastHidRequest = AppCommands.MediaStop;
                break;

            case RemoteButton.Pause:
                InputDevices.LastHidRequest = AppCommands.MediaPause;
                break;

            case RemoteButton.Rewind:
                InputDevices.LastHidRequest = AppCommands.MediaRewind;
                break;

            case RemoteButton.Play:
                InputDevices.LastHidRequest = AppCommands.MediaPlay;
                break;

            case RemoteButton.Forward:
                InputDevices.LastHidRequest = AppCommands.MediaFastForward;
                break;

            case RemoteButton.Replay:
                InputDevices.LastHidRequest = AppCommands.MediaPreviousTrack;
                break;

            case RemoteButton.Skip:
                InputDevices.LastHidRequest = AppCommands.MediaNextTrack;
                break;

            case RemoteButton.Back:
                InputDevices.LastHidRequest = AppCommands.BrowserBackward;
                break;

            case RemoteButton.ChannelUp:
                InputDevices.LastHidRequest = AppCommands.MediaChannelUp;
                break;

            case RemoteButton.ChannelDown:
                InputDevices.LastHidRequest = AppCommands.MediaChannelDown;
                break;

            case RemoteButton.Mute:
                InputDevices.LastHidRequest = AppCommands.VolumeMute;
                break;

            case RemoteButton.VolumeUp:
                return; // Don't handle this command, benefit from OS' repeat handling instead

            case RemoteButton.VolumeDown:
                return; // Don't handle this command, benefit from OS' repeat handling instead
            }

            // Get & execute Mapping
            RemoteHandler((int)remoteButton);
        }
Esempio n. 18
0
 private static void OnPushCallback(object sender, RemoteEventArgs e)
 {
     byte[] data = e.Data;
 }
Esempio n. 19
0
 private void OnPushCallback(object sender, RemoteEventArgs e)
 {
     msg = Encoding.UTF8.GetString(e.Data);
     Trace.WriteLine("call1 msg:" + msg);
 }
 public RemoteEventHandleExceptionData(Exception exception, RemoteEventArgs eventArgs) : base(exception)
 {
     EventArgs = eventArgs;
 }
Esempio n. 21
0
 private static void OnPushCallback(object sender, RemoteEventArgs e)
 {
 }
 public RemoteEventBusHandleEvent(RemoteEventArgs eventArgs)
 {
     RemoteEventArgs = eventArgs;
 }
Esempio n. 23
0
 private void OnRemoteRenamed(object sender, RemoteEventArgs e)
 {
     foreach(ToolStripItem item in _fetchButton.DropDownItems)
     {
         if(item.Tag == e.Object)
         {
             item.Text = e.Object.Name;
             break;
         }
     }
     foreach(ToolStripItem item in _pullButton.DropDownItems)
     {
         if(item.Tag == e.Object)
         {
             item.Text = e.Object.Name;
             break;
         }
     }
 }
 public int Echo(RemoteEventArgs arg)
 {
     EchoResponse();
     return(1);
 }
Esempio n. 25
0
 public void HandleEvent(RemoteEventArgs eventArgs)
 {
     Logger.Info("receive " + eventArgs.EventData.Data["playload"]);
 }
        public int Sink(RemoteEventArgs arg)
        {
            return(1);

            //throw new NotImplementedException();
        }
Esempio n. 27
0
 private void OnRemoteAdded(object sender, RemoteEventArgs e)
 {
     _fetchButton.DropDown.Items.Add(GuiItemFactory.GetFetchFromItem<ToolStripMenuItem>(e.Object, "{1}"));
     _pullButton.DropDown.Items.Add(GuiItemFactory.GetPullFromItem<ToolStripMenuItem>(e.Object, "{1}"));
     if(_repository.Remotes.Count == 1)
     {
         _fetchButton.Enabled = true;
         _pullButton.Enabled = true;
         _pushButton.Enabled = true;
     }
 }
        /// <summary>
        /// Called when [generic remote event].
        /// </summary>
        /// <typeparam name="TEvent">The type of the event.</typeparam>
        /// <param name="event">The event.</param>
        private static void OnGenericRemoteEvent <TEvent>(TEvent @event) where TEvent : IHasEventName
        {
            RemoteEventArgs <TEvent> remoteEventArgs = new RemoteEventArgs <TEvent>(@event);

            Event.RaiseEvent(@event.EventName, remoteEventArgs);
        }
Esempio n. 29
0
 public RemoteEventBusHandledEvent(RemoteEventArgs eventArgs)
     : base(eventArgs)
 {
 }
Esempio n. 30
0
 private void OnRemoteRemoved(object sender, RemoteEventArgs e)
 {
     if(SynchronizeInvoke.InvokeRequired)
     {
         try
         {
             SynchronizeInvoke.BeginInvoke(new Action<Remote>(OnRemoteRemoved), new object[] { e.Object });
         }
         catch(ObjectDisposedException)
         {
         }
     }
     else
     {
         OnRemoteRemoved(e.Object);
     }
 }
Esempio n. 32
0
 private void OnRemoteRemoved(object sender, RemoteEventArgs e)
 {
     if(_repository.Remotes.Count == 0)
     {
         _fetchButton.Enabled = false;
         _pullButton.Enabled = false;
         _pushButton.Enabled = false;
     }
     int id = 0;
     foreach(ToolStripItem item in _fetchButton.DropDown.Items)
     {
         if(item.Tag == e.Object)
         {
             _fetchButton.DropDown.Items.RemoveAt(id);
             break;
         }
         ++id;
     }
     id = 0;
     foreach(ToolStripItem item in _pullButton.DropDown.Items)
     {
         if(item.Tag == e.Object)
         {
             _pullButton.DropDown.Items.RemoveAt(id);
             break;
         }
         ++id;
     }
 }