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 }
/// <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); }
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 }
private void Callback(MsgArgs obj) { if (obj.MsgToken == "AddDish") { orderedDishlistBox.ScrollIntoView(orderedDishlistBox.SelectedItem); return; } }
/// <summary> /// 接收列表更新事件 /// </summary> /// <param name="args"></param> protected void OnUpdateInfo(MsgArgs args) { if (args.Get <int>(0) != linkedTransID) { return; } UpdateInfo(args); }
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); } }
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); }
/// <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; }
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); }
public CheckOutWindow(MsgArgs arg) { InitializeComponent(); tbxMoney.Focus(); if (null != arg) { tb_shouldpay.Text = string.Format("合计金额:¥{0}", arg.Content); ShouldPay = decimal.Parse(arg.Content); } }
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(); }
protected override BaseWindow GetWindow() { MsgArgs arg = new MsgArgs() { Content = Amount.ToString() }; CheckOutWindow w = new CheckOutWindow(arg); w.Owner = App.Current.MainWindow; return(w); }
/// <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; }
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); }
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()); }
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; }); }
/// <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)); } }
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); } }
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]); }
/// <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()); }
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()); } }
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)); } }
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); } } } }
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)); }
protected QStatus MethodReply(Message message, MsgArgs args) { return(alljoyn_busobject_methodreply_args(_busObject, message.UnmanagedPtr, args.UnmanagedPtr, (UIntPtr)args.Length)); }
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)); }
private void OnDefaultData2(object sender, MsgArgs e) { OnDefaultData1(sender, e); Assert.Null(e.data); }
public abstract void UpdateInfo(MsgArgs args);
internal MsgArg(MsgArgs owner, uint index) { _msgArgs = owner.UnmanagedPtr; _index = index; }
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); }
protected QStatus MethodReply(Message message, MsgArgs args) { return alljoyn_busobject_methodreply_args(_busObject, message.UnmanagedPtr, args.UnmanagedPtr, (UIntPtr)args.Length); }
private void OnDefaultData3(object sender, MsgArgs e) { OnDefaultData2(sender, e); Assert.Equal(MsgLevel.Debug, e.level); }
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); }