Example #1
0
        /// <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));
        }
Example #2
0
        /// <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));
        }
Example #3
0
 private async Task <object> SendMsgAsync(IMessageUsable vm, MessageAcceptArgs args)
 {
     if (vm != null && vm.Message != null)
     {
         return(await vm.Message.AcceptedMessageAsync(depencyViewModel, args));
     }
     return(null);
 }
Example #4
0
 /// <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);
 }
Example #5
0
 private object SendMsg(IMessageUsable vm, MessageAcceptArgs args)
 {
     if (vm != null && vm.Message != null)
     {
         return(vm.Message.AcceptMsg(depencyViewModel, args));
     }
     return(null);
 }
Example #6
0
 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));
 }
Example #7
0
 private object ShowMsgHandle(IMessageUsable sender, MessageAcceptArgs e)
 {
     if (e.Param is MsgShowArgs msa)
     {
         NeedShowMsg?.Invoke(msa);
     }
     return(null);
 }
Example #8
0
 private object SetVisitContent(IMessageUsable messageUsable, MessageAcceptArgs e)
 {
     if (e.Param is uint id)//直接发送cid
     {
         CurrentContent = Contents.Single(c => c.Id == id);
     }
     return(true);
 }
Example #9
0
 private object SetLeftPartVisibility(IMessageUsable messageUsable, MessageAcceptArgs e)
 {
     if (e.Param is bool b)
     {
         ParWidth = b ? _ParWidth : 0;
     }
     return(true);
 }
Example #10
0
 /// <summary>
 /// 收到信息
 /// </summary>
 /// <param name="sender">发送者</param>
 /// <param name="args">参数</param>
 internal object AcceptMsg(IMessageUsable sender, MessageAcceptArgs args)
 {
     return(AcceptedMessage?.Invoke(sender, args));
 }
Example #11
0
 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));
 }