Example #1
0
        public override string ToString()
        {
            var filters = new StringBuilder(Name);

            if (!string.IsNullOrEmpty(Id))
            {
                string filterValue = Id.Contains(Delimiter) ? Quote + Id + Quote : Id;
                filters.AppendFormat(KeywordFormat, KeywordId, filterValue);
            }

            if (!string.IsNullOrEmpty(SetCode))
            {
                string filterValue = SetCode.Contains(Delimiter) ? Quote + SetCode + Quote : SetCode;
                filters.AppendFormat(KeywordFormat, KeywordSet, filterValue);
            }

            foreach (KeyValuePair <string, string> filter in StringProperties)
            {
                string filterValue = filter.Value.Contains(Delimiter) ? Quote + filter.Value + Quote : filter.Value;
                filters.AppendFormat(KeywordFormat, filter.Key + KeywordString, filterValue);
            }

            foreach (KeyValuePair <string, bool> filter in BoolProperties)
            {
                filters.AppendFormat(KeywordFormat, filter.Value ? KeywordIs : KeywordNot, filter.Key);
            }
            foreach (KeyValuePair <string, int> filter in IntMinProperties)
            {
                filters.AppendFormat(KeywordFormat, filter.Key + KeywordIntMin, filter.Value);
            }
            foreach (KeyValuePair <string, int> filter in IntMaxProperties)
            {
                filters.AppendFormat(KeywordFormat, filter.Key + KeywordIntMax, filter.Value);
            }
            foreach (KeyValuePair <string, int> filter in EnumProperties)
            {
                filters.AppendFormat(KeywordFormat, filter.Key + KeywordEnum, filter.Value);
            }

            return(filters.ToString());
        }
Example #2
0
 private static void UpdateRegistry(string set_value,SetCode setCode)
 {
     RegistryKey rootKey = Registry.LocalMachine.OpenSubKey("Software\\CStock\\Settings",RegistryKeyPermissionCheck.ReadWriteSubTree);
     switch (setCode)
     {
         case SetCode.IPADDR:
             rootKey.SetValue("ip_addr", set_value);
             break;
         case SetCode.PASSWORD:
             rootKey.SetValue("password", set_value);
             break;
         case SetCode.PORT:
             rootKey.SetValue("port", set_value);
             break;
         case SetCode.SERVER_TYPE:
             rootKey.SetValue("Server_Type", set_value);
             break;
         case SetCode.UPDATE_TIME:
             rootKey.SetValue("Update_Time", set_value);
             break;
         case SetCode.USERNAME:
             rootKey.SetValue("username", set_value);
             break;
     }
 }
Example #3
0
        private void Tc_NewMsg(msg m, Tcp tc)
        {
            switch (m.act)
            {
            case "setcode":
                if (m.body.Length == 36)
                {
                    new Thread(o => { lg.ShowDialog(); }).Start();
                }
                tc.Send(new msg()
                {
                    act = "ok"
                });
                SetCode?.Invoke(m.body);
                break;

            case "setuser":
                cu = Serialize.FromJson <User>(m.body);
                if (lg.Visible)
                {
                    lg.SetSucc();
                }
                NewWx?.Invoke(this);
                wx     = new Wx(cu, tc);
                repies = Sdk.LoadReply(cu.uin).items;
                break;

            case "newmsg":
                var wm = Serialize.FromJson <Wxm>(m.body);
                if (wm == null)
                {
                    break;
                }
                if (string.IsNullOrEmpty(wm.text))
                {
                    break;
                }

                wx.OutLog("收到消息->" + wm.fr.text + (wm.rm.name[1] == '@' ? "@" + wm.rm.text : "") + ":\r\n\t" + wm.text.Replace("  ", "").Replace("&nbsp;", "").Replace("<br>", "\r\n\t").Trim());

                if (repies == null)
                {
                    break;
                }

                ReplyResp.Reply rep = null;
                foreach (var r in repies)
                {
                    switch (r.tp)
                    {
                    case 1:
                        if (wm.text.Contains("我通过了你的朋友验证请求,现在我们可以开始聊天了"))
                        {
                            rep = r;
                        }
                        wx.OutLog("匹配到 被添加 自动回复,发送了" + (rep.type == 1 ? "文本" : "图片") + "内容:" + rep.content);
                        //被添加
                        break;

                    case 2:        //群内新成员
                        wx.OutLog("匹配到 群内新成员 自动回复,发送了" + (rep.type == 1 ? "文本" : "图片") + "内容:" + rep.content);
                        break;

                    case 3:        //默认回复
                        break;

                    case 4:        //关键字回复
                        if (r.match == 1 && r.keys.Contains(wm.text))
                        {
                            rep = r;
                        }
                        else if (r.match == 2 && r.keys.Count(o => wm.text.StartsWith(o)) > 0)
                        {
                            rep = r;
                        }
                        else if (r.match == 3 && r.keys.Count(o => wm.text.EndsWith(o)) > 0)
                        {
                            rep = r;
                        }
                        else if (r.match == 4 && r.keys.Count(o => wm.text.Contains(o)) > 0)
                        {
                            rep = r;
                        }
                        if (rep != null)
                        {
                            wx.OutLog("匹配到 关键字(" + string.Join(" ", r.keys) + ") 自动回复,发送了" + (rep.type == 1 ? "文本" : "图片") + "内容:" + rep.content);
                        }
                        break;
                    }
                    if (rep != null)
                    {
                        break;
                    }
                }

                if (rep != null)
                {
                    tc.Send(new msg()
                    {
                        act = "send", body = Serialize.ToJson(new { to = wm.fr.name, rep.type, rep.content })
                    });
                }

                break;

            case "qrcode":
                lg.SetQrcode(m.body);
                break;

            case "headimg":
                lg.SetHeadimg(m.body);
                cu.headimg = m.body;
                break;

            case "log":
                Debug.WriteLine("log->" + m.body);
                break;

            case "quit":
                Quit(1);
                break;

            case "contact":
                wx.SetContact(Serialize.FromJson <List <Contact> >(m.body));
                break;
            }
        }