/// <summary> /// 发送消息 /// </summary> /// <typeparam name="TTarget"></typeparam> /// <param name="args"></param> /// <returns></returns> public object Send <TTarget>(MessageAcceptArgs args) where TTarget : IMessageUsable { var vm = MessageViewModels.SingleOrDefault(v => v is TTarget); return(SendMsg(vm, args)); }
/// <summary> /// 异步发送消息 /// </summary> /// <typeparam name="TTarget">目标</typeparam> /// <param name="args"></param> /// <returns></returns> public async Task <object> SendAsync <TTarget>(MessageAcceptArgs args) where TTarget : IMessageUsable { var vm = MessageViewModels.SingleOrDefault(v => v is TTarget); return(await SendMsgAsync(vm, args)); }
private async Task <object> SendMsgAsync(IMessageUsable vm, MessageAcceptArgs args) { if (vm != null && vm.Message != null) { return(await vm.Message.AcceptedMessageAsync(depencyViewModel, args)); } return(null); }
/// <summary> /// 异步接收信息 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> /// <returns></returns> internal async Task <object> AcceptMsgAsync(IMessageUsable sender, MessageAcceptArgs args) { if (AcceptedMessageAsync != null) { return(await AcceptedMessageAsync.Invoke(sender, args)); } return(null); }
private object SendMsg(IMessageUsable vm, MessageAcceptArgs args) { if (vm != null && vm.Message != null) { return(vm.Message.AcceptMsg(depencyViewModel, args)); } return(null); }
private object Message_AcceptedMessage(IMessageUsable sender, MessageAcceptArgs args) { if (!MsgHandle.TryGetValue(args.Key, out var handle)) { throw new ArgumentException($"不存在key={args.Key} 的处理方法"); } return(handle.Invoke(sender, args)); }
private object ShowMsgHandle(IMessageUsable sender, MessageAcceptArgs e) { if (e.Param is MsgShowArgs msa) { NeedShowMsg?.Invoke(msa); } return(null); }
private object SetVisitContent(IMessageUsable messageUsable, MessageAcceptArgs e) { if (e.Param is uint id)//直接发送cid { CurrentContent = Contents.Single(c => c.Id == id); } return(true); }
private object SetLeftPartVisibility(IMessageUsable messageUsable, MessageAcceptArgs e) { if (e.Param is bool b) { ParWidth = b ? _ParWidth : 0; } return(true); }
/// <summary> /// 收到信息 /// </summary> /// <param name="sender">发送者</param> /// <param name="args">参数</param> internal object AcceptMsg(IMessageUsable sender, MessageAcceptArgs args) { return(AcceptedMessage?.Invoke(sender, args)); }
private async Task <object> Message_AcceptedMessageAsync(IMessageUsable sender, MessageAcceptArgs args) { if (!AsyncMsgHandle.TryGetValue(args.Key, out var handle)) { throw new ArgumentException($"不存在key={args.Key} 的异步处理方法"); } return(await handle.Invoke(sender, args)); }