private void OnPushedHandle(RemoteEventArgs e) { RemoteCallback handler = PushedHandle; if (handler != null) { handler(this, e); } }
/// <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); }
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); } } }
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); }
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); } }
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 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)); } } } }
/// <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); }
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); } }
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); } }
private void OnReceived(object sender, RemoteEventArgs e) { msg = Encoding.UTF8.GetString(e.Data); }
/// <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); } }
/// <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); }
private static void OnPushCallback(object sender, RemoteEventArgs e) { byte[] data = e.Data; }
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; }
private static void OnPushCallback(object sender, RemoteEventArgs e) { }
public RemoteEventBusHandleEvent(RemoteEventArgs eventArgs) { RemoteEventArgs = eventArgs; }
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); }
public void HandleEvent(RemoteEventArgs eventArgs) { Logger.Info("receive " + eventArgs.EventData.Data["playload"]); }
public int Sink(RemoteEventArgs arg) { return(1); //throw new NotImplementedException(); }
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); }
public RemoteEventBusHandledEvent(RemoteEventArgs eventArgs) : base(eventArgs) { }
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); } }
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; } }