Пример #1
0
        public void TrackTest2()
        {
            MsgArgs msg = DepA.ClassA.GetMsgArgs(string.Empty);

#if LSR_FEATURE_S_VECTOR
            Assert.True(msg.At("LSenderTest"));
            Assert.True(msg.At("DepC", "LSenderTest"));
            Assert.True(msg.At("DepC", "DepB", "LSenderTest"));
            Assert.True(msg.At("DepC", "DepB", "DepA", "LSenderTest"));

            Assert.True(msg.At("DepC", "DepA", "LSenderTest"));
            Assert.True(msg.At("DepC", "DepB", "LSenderTest"));

            Assert.False(msg.At("LSenderTest", "DepC"));
            Assert.False(msg.At("DepB", "DepC", "LSenderTest"));
            Assert.False(msg.At("Dep", "LSenderTest"));
#else
            Assert.True(msg.At("LSenderTest"));
            Assert.True(msg.At("DepC", "LSenderTest"));
            Assert.True(msg.At("DepC", "DepB", "LSenderTest"));
            Assert.True(msg.At("DepC", "DepB", "DepA", "LSenderTest"));

            Assert.True(msg.At("DepC", "DepA", "LSenderTest"));
            Assert.True(msg.At("DepC", "DepB", "LSenderTest"));

            Assert.True(msg.At("LSenderTest", "DepC"));
            Assert.True(msg.At("DepB", "DepC", "LSenderTest"));
            Assert.True(msg.At("Dep", "LSenderTest"));
#endif
        }
Пример #2
0
        /// <summary>
        /// 消息接收,回调方法
        /// </summary>
        /// <param name="obj"></param>
        private void LoginCallback(MsgArgs obj)
        {
            switch (obj.Code)
            {
            case MsgCode.Succ:
                if (Init() == false)
                {
                    return;
                }
                (new OrderWindow()).Show();
                Close();
                return;

            case MsgCode.Faild:
                Close();
                return;

            case MsgCode.NoTheUser:
                tbxUser.Clear();
                tbxUser.Focus();
                break;

            case MsgCode.PasswordError:
                tbxPwd.Clear();
                tbxPwd.Focus();
                break;
            }
            MessageBox.Show(obj.ErrMessage);
        }
Пример #3
0
        public void TrackTest1()
        {
            var msg = new MsgArgs("");

#if LSR_FEATURE_S_VECTOR
            Assert.True(msg.At("LSenderTest"));

            Assert.False(msg.At(string.Empty));
            Assert.False(msg.At(string.Empty, string.Empty));
            Assert.False(msg.At(" "));
            Assert.False(msg.At(EmptyArray <string>()));
            Assert.False(msg.At());
            Assert.False(msg.At((string[])null));
            Assert.False(msg.At((string)null));
#else
            Assert.True(msg.At("LSenderTest"));

            Assert.True(msg.At(string.Empty));
            Assert.True(msg.At(string.Empty, string.Empty));
            Assert.True(msg.At(" "));
            Assert.True(msg.At(EmptyArray <string>()));
            Assert.True(msg.At());
            Assert.True(msg.At((string[])null));
            Assert.True(msg.At((string)null));
#endif
        }
Пример #4
0
 private void Callback(MsgArgs obj)
 {
     if (obj.MsgToken == "AddDish")
     {
         orderedDishlistBox.ScrollIntoView(orderedDishlistBox.SelectedItem);
         return;
     }
 }
Пример #5
0
 /// <summary>
 /// 接收列表更新事件
 /// </summary>
 /// <param name="args"></param>
 protected void OnUpdateInfo(MsgArgs args)
 {
     if (args.Get <int>(0) != linkedTransID)
     {
         return;
     }
     UpdateInfo(args);
 }
Пример #6
0
        private async Task OnDelete(MsgArgs <TodoItem, ObservableCollection <TodoItem> > message)
        {
            var result = await DisplayAlert("Remove", $"Remove '{message.Object.Title}'?", "Accept", "Cancel");

            if (result)
            {
                message.Object2.Remove(message.Object);
            }
        }
Пример #7
0
        private void OnDefaultData1(object sender, MsgArgs e)
        {
            var btype = typeof(LSenderTest);

            Assert.True(btype == sender.GetType() || btype == (Type)sender);

            Assert.Null(e.exception);
            Assert.True(e.stamp <= DateTime.Now);
        }
Пример #8
0
 /// <summary>
 /// 广播事件。推荐用于临时事件注册
 /// </summary>
 /// <param name="id">Event ID</param>
 /// <param name="msg">事件参数</param>
 public void Broadcast(string id, MsgArgs msg = null)
 {
     if (!_internalMsgTempleDict.ContainsKey(id))
     {
         LDebug.LogWarning("事件未注册:" + id.ToString()); return;
     }
     _internalMsgTempleDict[id].Invoke(msg);
     msg?.Dispose();
     msg = null;
 }
Пример #9
0
        public void CtorTest5()
        {
            var msg = new MsgArgs(null, "data");

            Assert.Null(msg.content);
            Assert.Equal(MsgLevel.Debug, msg.level);
            Assert.True(msg.stamp <= DateTime.Now);
            Assert.Null(msg.exception);
            Assert.NotNull(msg.data);
        }
Пример #10
0
 public CheckOutWindow(MsgArgs arg)
 {
     InitializeComponent();
     tbxMoney.Focus();
     if (null != arg)
     {
         tb_shouldpay.Text = string.Format("合计金额:¥{0}", arg.Content);
         ShouldPay         = decimal.Parse(arg.Content);
     }
 }
Пример #11
0
        private async Task OnNewItem(MsgArgs <ObservableCollection <TodoItem> > message)
        {
            await DisplayAlert("New Item", "Add New Item", "Accept", "Cancel");

            message.Object.Insert(0, new TodoItem()
            {
                Title = $"Item {message.Object.Count}"
            });

            message.CompleteHandler?.Invoke();
        }
Пример #12
0
        protected override BaseWindow GetWindow()
        {
            MsgArgs arg = new MsgArgs()
            {
                Content = Amount.ToString()
            };
            CheckOutWindow w = new CheckOutWindow(arg);

            w.Owner = App.Current.MainWindow;
            return(w);
        }
Пример #13
0
    /// <summary>
    /// 广播事件。统用枚举类
    /// </summary>
    /// <typeparam name="T">统用枚举类。可接受多种枚举。这里会转换为ushort类型。<em>通用枚举的转换,采用的是IConvertible.ToUInt16。中间借用了format涉及到了拆装箱,ID转换将会固定产生40B</em></typeparam>
    /// <param name="id">Event ID</param>
    /// <param name="msg">事件参数</param>
    public void Broadcast <T>(T id, MsgArgs msg = null) where T : IComparable, IConvertible, IFormattable
    {
        ushort idCode = id.ToUInt16(null);

        if (!_internalMsgDict.ContainsKey(idCode))
        {
            LDebug.LogWarning("事件未注册:" + id.ToString()); return;
        }
        _internalMsgDict[idCode].Invoke(msg);
        msg?.Dispose();
        msg = null;
    }
Пример #14
0
        public void CtorTest1()
        {
            string content = "Message1";

            var msg = new MsgArgs(content, MsgLevel.Fatal);

            Assert.Equal(content, msg.content);
            Assert.Equal(MsgLevel.Fatal, msg.level);
            Assert.Null(msg.exception);
            Assert.Null(msg.data);
            Assert.True(msg.stamp <= DateTime.Now);
        }
Пример #15
0
        public void CtorTest6()
        {
            var msg = new MsgArgs(null, new ArgumentOutOfRangeException());

            Assert.Null(msg.content);
            Assert.Equal(MsgLevel.Error, msg.level);
            Assert.True(msg.stamp <= DateTime.Now);
            Assert.Null(msg.data);
            Assert.NotNull(msg.exception);

            Assert.Equal(typeof(ArgumentOutOfRangeException), msg.exception.GetType());
        }
Пример #16
0
        private void OnMessageSentEventHandler(MsgArgs e)
        {
            var msg = string.Format("[{0}] {1}: {2}",
                                    e.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss"), e.Sender, e.Msg);

            // karena pesan yang masuk beda thread,
            // jadi harus menggunakan cara seperti ini untuk mengupdate UI
            lstPesanKeluar.Invoke(() =>
            {
                lstPesanKeluar.Items.Add(msg);
                lstPesanKeluar.SelectedIndex = lstPesanKeluar.Items.Count - 1;
            });
        }
Пример #17
0
        /// <summary>
        /// 结账逻辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        private object DoCheckout(object sender, object para)
        {
            MsgArgs arg = para as MsgArgs;

            if (arg == null)
            {
                throw new Exception(string.Format("获取结账返回参数出错!"));
            }

            try
            {
                string PayCode = arg.Extra["PayCode"].ToString();
                PayType = arg.Extra["PayType"].ToString();
                int      PayChannel = int.Parse(arg.Extra["PayChannel"].ToString());
                Curorder order      = CreateCurorder();
                int      index      = 0;
                foreach (var item in CurorderDetailList)
                {
                    item.CurorderId      = order.CurorderId;
                    item.CurrderDetailId = "MX" + DateTime.Now.ToString("yyMMddHHmmss") + (++index).ToString("000");
                }
                CurorderService service = new CurorderService();
                //添加账单及付款请求
                service.AddOrder(order, CurorderDetailList, PayChannel, PayCode);
                //生成结账单字符串
                string str = BillTemplate.GenerateBill(order, CurorderDetailList, PayType);

                Application.Current.Dispatcher.Invoke(new Action(() =>
                {
                    CurorderDetailList.Clear();
                    RaisePropertyChanged("OrderedDishQty");
                    RaisePropertyChanged("OrderedDishAmount");
                }
                                                                 ));
                return(new MsgArgs(MsgCode.Succ)
                {
                    Content = str
                });
            }
            catch (Exception e)
            {
                return(new MsgArgs(MsgCode.Faild, e.Message));
            }
        }
Пример #18
0
        protected void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Messenger.Default.Register <MsgArgs>(this, MsgToken.LoginToken, LoginCallback);
            Keyboard.Focus(tbxUser);
            tbxUser.SelectionStart = tbxUser.Text.Length;

            //检测升级
            try
            {
                if (Tools.IniRead(App.CurrentDir + "main.ini", "kill", "server", "").ToLower() != "s")
                {
                    return;                                                                                   //非服务端不检测升级
                }
                if (App.Version == "0.0.0")
                {
                    return;
                }
                MsgArgs arg = (new HttpUpgradeCheck()).Request();
                if (arg.Code == 22 || arg.Code != 1)
                {
                    return;
                }
                string data          = JObject.Parse(arg.Content)["data"].ToString();
                var    serverVersion = JsonTool.ParseValue(data, "version");
                string url           = JsonTool.ParseValue(data, "downloadUrl");
                if (string.IsNullOrEmpty(App.Version) || string.Compare(serverVersion, App.Version) <= 0)
                {
                    return;
                }
                string str = "当前程序版本: " + App.Version + "\r\n服务器程序版本:" + serverVersion + ", 是否立即更新?";
                if (MessageBox.Show(str, "提示", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
                {
                    return;
                }
                string downloadexefile = Tools.IniRead(App.CurrentDir + "main.ini", "exefile", "downloadfile.exe", "downloadfile.exe");
                Process.Start(downloadexefile, url);
                Tools.IniWrite(App.MainIni, "App", "startpoint", "pos");//让下载升级完成后启动该程序
                Close();
            }
            catch (System.Exception ex)
            {
                App.Log(ex.Message);
            }
        }
Пример #19
0
        public void CtorTest3()
        {
            string content = "Message3";

            object data = new int[] { 2, 4, 6 };

            var msg = new MsgArgs(content, data, MsgLevel.Warn);

            Assert.Equal(content, msg.content);
            Assert.Equal(MsgLevel.Warn, msg.level);
            Assert.True(msg.stamp <= DateTime.Now);
            Assert.Null(msg.exception);

            Assert.NotNull(msg.data);

            Assert.Equal(2, ((int[])msg.data)[0]);
            Assert.Equal(4, ((int[])msg.data)[1]);
            Assert.Equal(6, ((int[])msg.data)[2]);
        }
Пример #20
0
        /// <summary>
        /// 设置用户昵称
        /// </summary>
        /// <returns></returns>
        public string SetNickName()
        {
            string[] contents = MsgText.Split(BLL.Rules.Separation, StringSplitOptions.RemoveEmptyEntries);
            if (contents.Length == 1 || string.IsNullOrEmpty(contents[0]))
            {
                BLL.Fans.SetGoOnCmd(FromId, "");
                return(@"亲!你好
可以告诉我您的名字吗?");
            }
            else if (contents.Length == 2)
            {
                BLL.Fans.SetGoOnCmd(FromId, contents[1]);
                return("您叫" + contents[1] + ",对吗?");
            }
            else if (contents.Length == 3 && !(contents[2].Contains("不") || MsgArgs.Contains("no")))
            {
                BLL.Fans.SetNickName(FromId, contents[2]);
            }
            return(FlagSuccess());
        }
Пример #21
0
        public void CtorTest2()
        {
            string content = "Message2";

            try
            {
                throw new ArgumentNullException();
            }
            catch (ArgumentNullException ex)
            {
                var msg = new MsgArgs(content, ex, MsgLevel.Trace);

                Assert.Equal(content, msg.content);
                Assert.Equal(MsgLevel.Trace, msg.level);
                Assert.Null(msg.data);
                Assert.True(msg.stamp <= DateTime.Now);
                Assert.NotNull(msg.exception);

                Assert.Equal(typeof(ArgumentNullException), msg.exception.GetType());
            }
        }
Пример #22
0
        private void OnMessageRecievedEventHandler(MsgArgs e)
        {
            var msg = string.Format("[{0}] {1}: {2}",
                                    e.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss"), e.Sender, e.Msg);

            // karena pesan yang masuk beda thread,
            // jadi harus menggunakan cara seperti ini untuk mengupdate UI
            lstPesanMasuk.Invoke(() =>
            {
                lstPesanMasuk.Items.Add(msg);
                lstPesanMasuk.SelectedIndex = lstPesanMasuk.Items.Count - 1;
            });

            if (chkAutoReplay.Checked)
            {
                var msgReplay = string.Format("Bpk/Ibu *{0}*, perintah *{1}* sudah kami terima. Silahkan ditunggu.",
                                              e.Sender, e.Msg);

                _whatsAppApi.SendMessage(new MsgArgs(e.Sender, msgReplay));
            }
        }
Пример #23
0
        void CheckStateCallBack(object sender, MsgArgs e)
        {
            RemindType     _type     = (RemindType)(int.Parse(e.paramList[0].ToString()));
            RemindCtrlType _ctrlType = (RemindCtrlType)(int.Parse(e.paramList[1].ToString()));

            if (ctrlType == RemindCtrlType.None)
            {
                if (_type == type)
                {
                    if (!GameUI_Mgr_Remind.remindFunc.ContainsKey(this))
                    {
                        if (GameUI_Mgr_Remind.GetRemindState(type, ctrlType))
                        {
                            GameUI_Mgr_Remind.remindFunc.Add(this, true);
                        }
                        else
                        {
                            GameUI_Mgr_Remind.remindFunc.Add(this, false);
                        }
                    }
                    return;
                }
            }
            if (_ctrlType == ctrlType)
            {
                if (!GameUI_Mgr_Remind.remindFunc.ContainsKey(this))
                {
                    if (GameUI_Mgr_Remind.GetRemindState(type, ctrlType))
                    {
                        GameUI_Mgr_Remind.remindFunc.Add(this, true);
                    }
                    else
                    {
                        GameUI_Mgr_Remind.remindFunc.Add(this, false);
                    }
                }
            }
        }
Пример #24
0
 public QStatus MethodCallSynch(string ifaceName, string methodName, MsgArgs args, Message replyMsg,
                                uint timeout, byte flags)
 {
     return(alljoyn_proxybusobject_methodcall(_proxyBusObject, ifaceName, methodName, args.UnmanagedPtr,
                                              (UIntPtr)args.Length, replyMsg.UnmanagedPtr, timeout, flags));
 }
Пример #25
0
 protected QStatus MethodReply(Message message, MsgArgs args)
 {
     return(alljoyn_busobject_methodreply_args(_busObject, message.UnmanagedPtr, args.UnmanagedPtr,
                                               (UIntPtr)args.Length));
 }
Пример #26
0
 protected QStatus Signal(string destination, uint sessionId, InterfaceDescription.Member signal,
                          MsgArgs args, ushort timeToLife, byte flags)
 {
     return(alljoyn_busobject_signal(_busObject, destination, sessionId, signal._member, args.UnmanagedPtr, (UIntPtr)args.Length, timeToLife, flags, IntPtr.Zero));
 }
Пример #27
0
 private void OnDefaultData2(object sender, MsgArgs e)
 {
     OnDefaultData1(sender, e);
     Assert.Null(e.data);
 }
Пример #28
0
 public abstract void UpdateInfo(MsgArgs args);
Пример #29
0
 internal MsgArg(MsgArgs owner, uint index)
 {
     _msgArgs = owner.UnmanagedPtr;
     _index   = index;
 }
Пример #30
0
 protected QStatus Signal(string destination, uint sessionId, InterfaceDescription.Member signal,
     MsgArgs args, ushort timeToLife, byte flags)
 {
     return alljoyn_busobject_signal(_busObject, destination, sessionId, signal._member, args.UnmanagedPtr, (UIntPtr)args.Length, timeToLife, flags, IntPtr.Zero);
 }
Пример #31
0
 protected QStatus MethodReply(Message message, MsgArgs args)
 {
     return alljoyn_busobject_methodreply_args(_busObject, message.UnmanagedPtr, args.UnmanagedPtr,
         (UIntPtr)args.Length);
 }
Пример #32
0
 private void OnDefaultData3(object sender, MsgArgs e)
 {
     OnDefaultData2(sender, e);
     Assert.Equal(MsgLevel.Debug, e.level);
 }
Пример #33
0
            public QStatus MethodCallSynch(string ifaceName, string methodName, MsgArgs args, Message replyMsg,
				uint timeout, byte flags)
            {
                return alljoyn_proxybusobject_methodcall(_proxyBusObject, ifaceName, methodName, args.UnmanagedPtr,
                    (UIntPtr)args.Length, replyMsg.UnmanagedPtr, timeout, flags);
            }