Example #1
0
 public string Start()
 {
     LogableClass.ToLog("接口", "启动");
     try
     {
         LogableClass.ToLog("cookie", cookie);
         client.Start(cookie);
         LogableClass.ToLog("接口已启动", "完毕");
         if (DisplayByFrm)
         {
             Application.Run(frm);
         }
         else
         {
             while (true)
             {
             }
         }
     }
     catch (Exception ce)
     {
         LogableClass.ToLog("错误", "接口启动失败!", string.Format("{0}:{1}", ce.Message, ce.StackTrace));
         return(string.Format("{0}:{1}", ce.Message, ce.StackTrace));
     }
     //
     return("");
 }
Example #2
0
 /// <summary>
 /// 应用程序的主入口点。
 /// </summary>
 static void Main()
 {
     try
     {
         ServiceBase[] ServicesToRun;
         LogableClass.ToLog("构建计算服务", "开始");
         CalcService cs = new CalcService();
         LogableClass.ToLog("构建接收服务", "开始");
         ReceiveService rs = new ReceiveService();
         rs.CalcProcess = cs;
         //只有接收数据是默认启动,计算服务由接收数据触发
         ServicesToRun = new ServiceBase[]
         {
             rs
         };
         LogableClass.ToLog("初始化服务器全局设置", "开始");
         InitSystem();
         LogableClass.ToLog("启动通道", "开始");
         new CommuniteClass().StartIPCServer();
         ServiceBase.Run(ServicesToRun);
     }
     catch (Exception e)
     {
         LogableClass.ToLog("初始化服务失败", e.Message);
     }
 }
Example #3
0
        private static void Client_LoginComplete(object sender, TEventArgs <User> e)
        {
            try
            {
                string cookie = client.GetLastCookie();
                Console.WriteLine("登陆成功:" + e.Result.NickName);
                Console.WriteLine("========已记录cookie,下次登陆将推送提醒至手机,取代扫码========");
                LogableClass.ToLog("登陆成功:" + e.Result.NickName, "========已记录cookie,下次登陆将推送提醒至手机,取代扫码========");
                using (StreamWriter sw = new StreamWriter(cookiePath, false))
                {
                    sw.WriteLine(cookie);
                }

                qrForm.Invoke(new Action(() =>
                {
                    if (DisplayByFrm)
                    {
                        qrForm.Close();
                    }
                }));
            }
            catch
            {
            }
        }
Example #4
0
 /// <summary>
 /// 应用程序的主入口点。
 /// </summary>
 static void Main()
 {
     try
     {
         gc = new GlobalClass();
         string url = gc.WXLogUrl;
         url = gc.WXLogNoticeUser;
         ServiceBase[] ServicesToRun;
         LogableClass.ToLog("构建计算服务", "开始");
         CalcService <TimeSerialData> cs = new CalcService <TimeSerialData>();
         LogableClass.ToLog("构建接收服务", "开始");
         ReceiveService <TimeSerialData> rs = new ReceiveService <TimeSerialData>();
         //SubscriptData sd = new SubscriptData();
         rs.CalcProcess = cs;
         //只有接收数据是默认启动,计算服务由接收数据触发
         ServicesToRun = new ServiceBase[]
         {
             rs//,sd
         };
         LogableClass.ToLog("初始化服务器全局设置", "开始");
         InitSystem();
         AllServiceConfig.wxlog.Log("初始化系统", "各种配置读取完毕并有效初始化!", string.Format(gc.WXLogUrl, gc.WXSVRHost));
         LogableClass.ToLog("启动通道", "开始");
         new CommuniteClass().StartIPCServer();
         ServiceBase.Run(ServicesToRun);
         //AllServiceConfig.wxlog.Log("退出服务", "意外停止服务", string.Format(gc.WXLogUrl, gc.WXSVRHost));
     }
     catch (Exception e)
     {
         LogableClass.ToLog("初始化服务失败", e.StackTrace);
         Program.AllServiceConfig.wxlog.Log("退出服务,运行错误", string.Format("{0}[{1}]", e.Message, e.StackTrace), string.Format(gc.WXLogUrl, gc.WXSVRHost));
     }
 }
Example #5
0
        //////void ExchangeTheChance(object sender, ElapsedEventArgs e)
        //////{
        //////    ////ExchangeLock = true;
        //////    //////ToAdd 交易内容
        //////    ////ExchangeLock = false;
        //////}


        public bool Push(ref ExchangeChance ec)
        {
            lock (ed)
            {
                if (ec.OwnerChance == null)
                {
                    return(false);
                }
                if (ec.OccurStrag == null)
                {
                    return(false);
                }
                #region 单位金额由外面传入
                ////////////if (ec.OwnerChance.IncrementType == InterestType.CompoundInterest)//如果是复利
                ////////////{
                ////////////    if (ec.OccurStrag is ProbWaveSelectStragClass)//由外面传入
                ////////////    {
                ////////////    }
                ////////////    else
                ////////////    {
                ////////////        if (ec.OwnerChance.Tracerable)
                ////////////        {
                ////////////            ec.ExchangeAmount = (ec.OwnerChance as ISpecAmount).getChipAmount(CurrMoney, ec.OwnerChance, ec.OccurStrag.CommSetting.GetGlobalSetting().DefaultHoldAmtSerials);
                ////////////        }
                ////////////        else
                ////////////        {
                ////////////            ec.ExchangeAmount = (ec.OccurStrag as ChanceTraceStragClass).getChipAmount(CurrMoney, ec.OwnerChance, ec.OccurStrag.CommSetting.GetGlobalSetting().DefaultHoldAmtSerials);
                ////////////            ec.ExchangeRate = ec.ExchangeAmount * ec.OwnerChance.ChipCount / CurrMoney;
                ////////////        }
                ////////////    }
                ////////////    //ec.ExchangeAmount = (int)Math.Floor(CurrMoney * ec.OccurStrag.StagSetting.BaseType.ChipRate);
                ////////////}
                ////////////else
                ////////////{
                ////////////    if (ec.OwnerChance.Tracerable)
                ////////////    {
                ////////////        ec.ExchangeAmount = (ec.OwnerChance as ISpecAmount).getChipAmount(CurrMoney, ec.OwnerChance, ec.OccurStrag.CommSetting.GetGlobalSetting().DefaultHoldAmtSerials);
                ////////////    }
                ////////////    else
                ////////////    {
                ////////////        ec.ExchangeAmount = (ec.OccurStrag as ChanceTraceStragClass).getChipAmount(CurrMoney, ec.OwnerChance, ec.OccurStrag.CommSetting.GetGlobalSetting().DefaultHoldAmtSerials);
                ////////////    }
                ////////////}
                #endregion
                if (CurrMoney < ec.ExchangeAmount * ec.OwnerChance.ChipCount)
                {
                    LogableClass.ToLog("风险", "剩余金额不足", ec.OwnerChance.ToDetailString());
                    return(false);
                }
                if (ec.ExchangeAmount * ec.OwnerChance.ChipCount * 10 > CurrMoney)//记录投入资金超出10%的记录
                {
                    LogableClass.ToLog("风险", string.Format("大投入组合[{0}]", (double)100 * ec.ExchangeAmount * ec.OccurStrag.ChipCount / CurrMoney), ec.OwnerChance.ToDetailString());
                }
                ec         = ed.AddAChance(ec);
                CurrMoney -= ec.ExchangeAmount * ec.OwnerChance.ChipCount;
                //MoneyLine.Add(CurrMoney);
                return(true);
            }
        }
 public void Log(string topic, string msg, bool ToWXMsg = false)
 {
     LogableClass.ToLog(this.ServiceName, topic, msg);
     if (ToWXMsg)
     {
         Program.AllServiceConfig.wxlog.Log(this.ServiceName, topic, msg, string.Format(Program.gc.WXLogUrl, Program.gc.WXSVRHost));
     }
 }
Example #7
0
 public void  Add(long?key, ChanceClass value)
 {
     if (list.ContainsKey(key))
     {
         LogableClass.ToLog("错误", "插入机会错误", "存在相同的Key");
         return;
     }
     list.Add(key, value);
 }
Example #8
0
 public void RefreshLogData(DataTable dt)
 {
     try
     {
         SetDataGridDataTable(dg_LoginList, dt, "时间 desc");
     }
     catch (Exception ce)
     {
         LogableClass.ToLog("监控终端", "刷新数据错误", ce.Message);
     }
 }
Example #9
0
        static async Task <MongoDataDictionary <XDXRData> > Exec(XDXRReader reader)
        {
            //Func<XDXRReader,MongoDataDictionary<XDXRData>> action = delegate (XDXRReader rd)
            Func <MongoDataDictionary <XDXRData> > action = delegate()
            {
                MongoDataDictionary <XDXRData> list = reader.GetAllCodeDateSerialDataList <XDXRData>(true);
                LogableClass.ToLog("获取到除权除息数据", string.Format("股票数:{0};总条数:{1}", list.Count, list.Sum(p => p.Value.Count)));
                return(list);
            };

            return(await Task.Run(action));

            //return await Task.Run(action);
        }
Example #10
0
 public void Init(GlobalClass gc)
 {
     if (gc == null)
     {
         gc = new GlobalClass();
     }
     this.gc = gc;
     LogableClass.ToLog("初始化服务器设置", "初始化策略列表");
     this.AllStrags = InitServerClass.Init_StragList();
     LogableClass.ToLog("初始化服务器设置", "初始化运行计划列表");
     this.AllRunPlannings = InitServerClass.Init_StragPlans();
     LogableClass.ToLog("初始化服务器设置", "初始资产单元列表");
     this.AllAssetUnits         = InitServerClass.Init_AssetUnits();
     this.AllNoClosedChanceList = new Dictionary <string, ChanceClass>();
 }
Example #11
0
        public void InitSecurity()
        {
            foreach (string key in GlobalClass.TypeDataPoints.Keys)
            {
                DataTypePoint dtp = GlobalClass.TypeDataPoints[key];
                if (dtp.RuntimeInfo == null)
                {
                    dtp.RuntimeInfo = new DataPointBuff(dtp);
                }
                dtp.RuntimeInfo.DefaultDataUrl = dtp.MainDataUrl;
                //dtp.RuntimeInfo.DefaultUseXmlModel = dtp.SrcUseXml;
                dtp.RuntimeInfo.DefaultUseDataType = dtp.MainDataType;
                dtp.RuntimeInfo.DefaultDataDecode  = dtp.DataDecode;
                if (dtp.IsSecurityData == 0)
                {
                    LogableClass.ToLog(string.Format("Type:{0}", key), "非证券类型,无须加载基本信息!");
                    continue;
                }

                LogableClass.ToLog(string.Format("准备获取[{0}]股票清单", key), "开始");
                dtp.RuntimeInfo.SecurityInfoList = InitSecurityClass.getAllCodes(key);
                if (dtp.RuntimeInfo.SecurityInfoList == null)
                {
                    LogableClass.ToLog(string.Format("准备获取[{0}]股票清单", key), "失败");
                    continue;
                }
                LogableClass.ToLog(string.Format("获取[{0}]股票清单", key), string.Format("股票数量:{0}", dtp.RuntimeInfo.SecurityInfoList.Count));
                string[] codes = dtp.RuntimeInfo.SecurityInfoList.Keys.ToArray();
                dtp.RuntimeInfo.SecurityCodes = codes;
                LogableClass.ToLog(string.Format("准备获取[{0}]日期数据", key), "开始");
                dtp.RuntimeInfo.HistoryDateList = InitSecurityClass.getStockIndexAllDateList(key);
                LogableClass.ToLog(string.Format("获取[{0}]日期数据", key), string.Format("日期数量:{0}", dtp.RuntimeInfo.HistoryDateList.Count));
                LogableClass.ToLog(string.Format("准备获取[{0}]除权除息数据", key), "开始");
                DateTime        now  = DateTime.Now;
                List <string[]> test = new List <string[]>();
                //List<string[]> codeGrp = GroupBuilder.ToGroup<string>(codes, dtp.CodeGrpCnt);
                test.Add(new string[] { "000001" });
                //dtp.RuntimeInfo.XDXRList = InitSecurityClass.getAllXDXRDataAsync(key,dtp.RuntimeInfo.getGrpCodes);
                dtp.RuntimeInfo.XDXRList = InitSecurityClass.getAllXDXRDataAsync(key, test);
                //dtp.RuntimeInfo.XDXRList = new MongoDataDictionary<XDXRData>();//用时再取
                //dtp.RuntimeInfo.XDXRList = InitSecurityClass.getAllXDXRDataAsync(key, test);
                ToLog("获取XDXR总共经历时间", DateTime.Now.Subtract(now).TotalSeconds.ToString());
                LogableClass.ToLog(string.Format("获取[{0}]除权除息数据", key), string.Format("总数量:{0}", dtp.RuntimeInfo.XDXRList.Sum(p => p.Value.Count)));
                //GlobalClass.TypeDataPoints[key] = dtp;
            }
        }
Example #12
0
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        static void Main()
        {
Run:
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new ExecWinFormControlSvr()
            };
            try
            {
                ServiceBase.Run(ServicesToRun);
            }
            catch (Exception ce)
            {
                LogableClass.ToLog("系统异常", ce.Message, ce.StackTrace);
                goto Run;
            }
        }
Example #13
0
 /// <summary>
 /// 客户端获得远程内部数据
 /// </summary>
 /// <param name="args"></param>
 public List <T> GetRemoteData(params object[] args)
 {
     try
     {
         Result = IPCDataEvent(args);
     }
     catch (Exception e)
     {
         LogableClass.ToLog("获取远程端数据错误", e.Message);
         return(null);
     }
     if (Result == null)
     {
         return(null);
     }
     Cnt = Result.Count;
     return(Result);
 }
Example #14
0
        static void InitSystem <T>() where T : TimeSerialData
        {
            LogableClass.ToLog("构建计算服务", "开始");
            //CalcService<T> cs = new CalcService<T>();
            LogableClass.ToLog("构建接收服务", "开始");
            //ReceiveService<T> rs = new ReceiveService<T>();
            //SubscriptData sd = new SubscriptData();
            //rs.CalcProcess = cs;
            AllServiceConfig = new ServiceSetting <TimeSerialData>();
            AllServiceConfig.Init(null);
            AllServiceConfig.GrpThePlan(false);
            AllServiceConfig.CreateChannel(GlobalClass.TypeDataPoints.First().Key);

            AllServiceConfig.AllAssetUnits.Values.ToList <AssetUnitClass>().ForEach(p => p.Run());//打开各开关
            //RemoteCommClass<ServiceSetting>.SetRemoteInst(AllServiceConfig);
            //AllServiceConfig.AllLogs = new LogInfo().GetLogAfterDate(DateTime.Today.AddHours(-1));
            DataRecSvr.Program.AllServiceConfig = AllServiceConfig;
            //rs.Start();
        }
Example #15
0
        static void Main()
        {
            ////MissDataSerial mcc = new MissDataSerial(300);
            ////mcc.OpList = new[] { 0, 2, 3, 1, 200, 90, 1, 1, 1, 1, 0 }.ToList();
            ////for(int i=1;i<10;i++)
            ////{
            ////    mcc = mcc.getAdd(i%10==0?1:0);
            ////}
            //return;
            Main1();
            return;

            Application.Run(new frm_ImageTextRead());
            return;

            //////////测试读取数据
            //////////GlobalObj gb = new GlobalObj();
            ////////GlobalClass gc = new GlobalClass();
            ////////string str = GlobalClass.dbName;//触发静态
            ////////KL12_HtmlDataClass hd = new KL12_HtmlDataClass(GlobalClass.TypeDataPoints["SCKL12"]);
            ////////ExpectList<TimeSerialData> el = hd.getExpectList<TimeSerialData>();
            ////////return;
            splitFile("share", "function(", '}');
            //return;
            LogableClass.ToLog("初始化服务器全局设置", "开始");
            InitSystem <TimeSerialData>();
            LogableClass.ToLog("启动通道", "开始");
            new CommuniteClass().StartIPCServer();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            GlobalObj gb = new GlobalObj();
            ////gb.w = new WindAPI();
            ////gb.w.start();
            ReceiveService <TimeSerialData> rc = new ReceiveService <TimeSerialData>();

            rc.Start();
            Form2 frm = new Form2(gb);

            Application.Run(frm);
        }
Example #16
0
        public void Init(GlobalClass gc)
        {
            if (gc == null)
            {
                gc = new GlobalClass();
            }
            this.gc = gc;

            wxlog = new WXLogClass("服务器管理员", gc.WXLogNoticeUser, string.Format(gc.WXLogUrl, gc.WXSVRHost));

            LogableClass.ToLog("初始化服务器设置", "初始化策略列表");
            wxlog.Log("初始化服务器设置", "初始化策略列表");
            this.AllStrags = InitServerClass.Init_StragList <T>();
            LogableClass.ToLog("初始化服务器设置", "初始化运行计划列表");
            wxlog.Log("初始化服务器设置", "初始化运行计划列表");
            this.AllRunPlannings = InitServerClass.Init_StragPlans <T>();
            LogableClass.ToLog("初始化服务器设置", "初始资产单元列表");
            wxlog.Log("初始化服务器设置", "初始资产单元列表");
            this.AllAssetUnits         = InitServerClass.Init_AssetUnits();
            this.AllNoClosedChanceList = new Dictionary <string, ChanceClass <T> >();
            InitSecurity();
        }
Example #17
0
        static void Main1()
        {
            //splitFile("share", "function(", '}');
            //return;
            LogableClass.ToLog("初始化服务器全局设置", "开始");
            InitSystem <TimeSerialData>();
            LogableClass.ToLog("启动通道", "开始");
            new CommuniteClass().StartIPCServer();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            GlobalObj gb = new GlobalObj();
            ////gb.w = new WindAPI();
            ////gb.w.start();
            ReceiveService <TimeSerialData> rc = new ReceiveService <TimeSerialData>();

            rc.setGlobalClass(AllServiceConfig.gc);
            rc.CalcProcess = new CalcService <TimeSerialData>();
            rc.Start();
            Form2 frm = new Form2(gb);

            Application.Run(frm);
        }
Example #18
0
        public static object XmlDeserialize(string s, Encoding encoding, Type tp)
        {
            //s = s.Substring(1, s.Length - 1);
            s = "<" + s.Substring(s.IndexOf('<') + 1);
            if (string.IsNullOrEmpty(s))
            {
                throw new ArgumentNullException("s");
            }
            if (encoding == null)
            {
                throw new ArgumentNullException("encoding");
            }
            XmlDocument xmldoc = new XmlDocument();

            try
            {
                xmldoc.LoadXml(s);
                if (xmldoc == null)
                {
                    throw new Exception("");
                }
            }
            catch (Exception ce)
            {
                LogableClass.ToLog("载入Xml错误!", ce.Message);
            }

            XmlSerializer mySerializer = new XmlSerializer(tp);

            using (MemoryStream ms = new MemoryStream(encoding.GetBytes(s)))
            {
                using (StreamReader sr = new StreamReader(ms, encoding))
                {
                    return(mySerializer.Deserialize(sr));
                }
            }
        }
Example #19
0
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        static void Main2()
        {
            splitFile("share", "function", '}');
            return;

            try
            {
                ////DateTime dt = new DateTime(1991,4,3,12,0,1,12);
                ////DateTime bt = DateTime.Parse("1990-01-01");
                ////long val = (long)MongoDateTime.Stamp(dt);
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                //ServiceBase[] ServicesToRun;

                //只有接收数据是默认启动,计算服务由接收数据触发
                //ServicesToRun = new ServiceBase[]
                //{
                //    rs,sd
                //};
                LogableClass.ToLog("初始化服务器全局设置", "开始");
                InitSystem <TimeSerialData>();
                LogableClass.ToLog("启动通道", "开始");
                new CommuniteClass().StartIPCServer();
                //ServiceBase.Run(ServicesToRun);
                GlobalObj gb = new GlobalObj();
                //gb.w = new WindAPI();
                //gb.w.start();
                //new ReceiveService().Start();

                Form2 frm = new Form2(gb);
                Application.Run(frm);
            }
            catch (Exception e)
            {
                LogableClass.ToLog("初始化服务失败", e.StackTrace);
            }
        }
 public void Log(string topic, string msg)
 {
     LogableClass.ToLog(this.ServiceName, topic, msg);
 }
Example #21
0
 public void Test(string strTest)
 {
     LogableClass.ToLog("服务端日志", "测试", strTest);
 }
Example #22
0
 public void ClearAllData()
 {
     LogableClass.ToLog("清空指令", "清空所有数据!");
 }
Example #23
0
        private static void Client_ReceiveMsg(object sender, TEventArgs <List <AddMsg> > e)
        {
            try
            {
                ClientValid = true;
                LogableClass.ToLog("接收到消息条数:", e.Result.Count.ToString());
                foreach (var item in e.Result)

                {
                    switch (item.MsgType)

                    {
                    case MsgType.MM_DATA_TEXT:

                        if (contactDict.Keys.Contains(item.FromUserName))
                        {
                            if (item.FromUserName.StartsWith("@@"))
                            {
                                //群消息,内容格式为[群内username];<br/>[content],例如Content=@ffda8da3471b87ff22a6a542c5581a6efd1b883698db082e529e8e877bef79b6:<br/>哈哈
                                string[] content = item.Content.Split(new string[] { ":<br/>" }, StringSplitOptions.RemoveEmptyEntries);
                                Console.WriteLine(contactDict[item.FromUserName].NickName + ":" + contactDict[item.FromUserName].MemberDict[content[0]].NickName + ":" + content[1]);
                            }
                            else
                            {
                                Console.WriteLine(contactDict[item.FromUserName].NickName + ":" + item.Content);
                            }
                        }

                        else
                        {
                            //不包含(一般为群)则需要我们主动拉取信息

                            client.GetBatchGetContactAsync(item.FromUserName);
                        }



                        break;

                    case MsgType.MM_DATA_HTML:

                        break;

                    case MsgType.MM_DATA_IMG:

                        break;

                    case MsgType.MM_DATA_PRIVATEMSG_TEXT:

                        break;

                    case MsgType.MM_DATA_PRIVATEMSG_HTML:

                        break;

                    case MsgType.MM_DATA_PRIVATEMSG_IMG:

                        break;

                    case MsgType.MM_DATA_VOICEMSG:

                        break;

                    case MsgType.MM_DATA_PUSHMAIL:

                        break;

                    case MsgType.MM_DATA_QMSG:

                        break;

                    case MsgType.MM_DATA_VERIFYMSG:

                        //自动加好友,日限额80个左右,请勿超限额多次调用,有封号风险

                        //client.VerifyUser(item.RecommendInfo);

                        break;

                    case MsgType.MM_DATA_PUSHSYSTEMMSG:

                        break;

                    case MsgType.MM_DATA_QQLIXIANMSG_IMG:

                        break;

                    case MsgType.MM_DATA_POSSIBLEFRIEND_MSG:

                        break;

                    case MsgType.MM_DATA_SHARECARD:

                        break;

                    case MsgType.MM_DATA_VIDEO:

                        break;

                    case MsgType.MM_DATA_VIDEO_IPHONE_EXPORT:

                        break;

                    case MsgType.MM_DATA_EMOJI:

                        break;

                    case MsgType.MM_DATA_LOCATION:

                        break;

                    case MsgType.MM_DATA_APPMSG:
                    {
                    }
                    break;

                    case MsgType.MM_DATA_VOIPMSG:

                        break;

                    case MsgType.MM_DATA_STATUSNOTIFY:

                        switch (item.StatusNotifyCode)

                        {
                        case StatusNotifyCode.StatusNotifyCode_READED:

                            break;

                        case StatusNotifyCode.StatusNotifyCode_ENTER_SESSION:

                            break;

                        case StatusNotifyCode.StatusNotifyCode_INITED:

                            break;

                        case StatusNotifyCode.StatusNotifyCode_SYNC_CONV:

                            //初始化的时候第一次sync会返回最近聊天的列表

                            client.GetBatchGetContactAsync(item.StatusNotifyUserName);

                            break;

                        case StatusNotifyCode.StatusNotifyCode_QUIT_SESSION:

                            break;

                        default:

                            break;
                        }

                        break;

                    case MsgType.MM_DATA_VOIPNOTIFY:

                        break;

                    case MsgType.MM_DATA_VOIPINVITE:

                        break;

                    case MsgType.MM_DATA_MICROVIDEO:

                        break;

                    case MsgType.MM_DATA_SYSNOTICE:

                        break;

                    case MsgType.MM_DATA_SYS:

                        //系统消息提示,例如完成好友验证通过,建群等等,提示消息“以已经通过了***的朋友验证请求,现在可以开始聊天了”、“加入了群聊”

                        //不在字典,说明是新增,我们就主动拉取加入联系人字典

                        if (!contactDict.Keys.Contains(item.FromUserName))

                        {
                            client.GetBatchGetContactAsync(item.FromUserName);
                        }

                        break;

                    case MsgType.MM_DATA_RECALLED:

                        break;

                    default:

                        break;
                    }
                }
            }

            catch (Exception err)

            {
                Console.WriteLine("异常:" + err.Message);
            }
        }
Example #24
0
        static void Main(string[] args)
        {
            VerNo = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            System.IO.Directory.SetCurrentDirectory(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location));

            //Xpcom.Initialize("Firefox");
            gc = new GlobalClass();//加载根目录config
            if (!gc.loadSucc)
            {
                return;
            }
            ////GlobalClass sgc = new GlobalClass(string.Format("config\\",gc.ForWeb));
            ////if(sgc.loadSucc)//如果有子目录
            ////{
            ////    gc = sgc;
            ////}

            System.Drawing.Image img = null;
            //string retver = VerPwdClass.getString(img);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (args != null && args.Length >= 2)
            {
                strName     = args[0];
                strPassword = args[1];
                AutoLogin   = true;
            }
            Form1 frm = null;

            wxl = new WXLogClass("客户端", gc.WXLogNoticeUser, string.Format(gc.WXLogUrl, gc.WXSVRHost));//指定默认登录用户,为捕捉第一次产生错误用。
            //ContinueRun:
            try
            {
                //var programDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                //Gecko.Xpcom.Initialize(Path.Combine(programDirectory, "xulrunner"));

                frm = new Form1(strName, strPassword, AutoLogin);
                string msg = wxl.Log(string.Format("{0}", "客户端启动!"));

                Application.Run(frm);

                wxl.Log(string.Format("{0}", "客户端退出!"));
            }
            catch (Exception ce)
            {
                wxl = new WXLogClass(User, gc.WXLogNoticeUser, gc.WXLogUrl);
                LogableClass.ToLog("错误", "退出界面:" + ce.Message, ce.StackTrace);
                wxl.Log("错误退出交易终端,请立即手动启动终端!", string.Format("{0}:退出界面!", Title), string.Format("详细原因[{0}]:{1}", ce.Message, ce.StackTrace));
                ////AutoLogin = true;
                ////if(frm != null)
                ////    GC.SuppressFinalize(frm);
                ////frm = null;

                //goto ContinueRun;
            }
            finally
            {
                GlobalClass.SetConfig(gc.ForWeb);
                if (frm != null)
                {
                    GC.SuppressFinalize(frm);
                }
            }
            //Application.Exit();
        }
Example #25
0
 public static void SetRemoteInst(T obj)
 {
     LogableClass.ToLog("填充远程值", obj.ToString());
     _RemoteInst = obj;
 }
Example #26
0
        void rePaintChart(int Len)
        {
            try
            {
                Chart chrt = this.chart_ForGuide;
                ////chrt.Parent = this.chart_ForGuide.Parent;
                ////chrt.Left = this.chart_ForGuide.Left;
                ////chrt.Top = this.chart_ForGuide.Top;
                ////chrt.Dock = this.chart_ForGuide.Dock;

                Dictionary <string, AssetUnitClass> assetUnits = UseSetting.AllAssetUnits;
                //System.Threading.Thread.Sleep(10 * 1000);
                lock (assetUnits)
                {
                    ////////////string strExpect = dt.Rows[dt.Rows.Count - 1]["Expect"].ToString();
                    ////////////Int64 MinExpect = Int64.Parse(strExpect) - 180;
                    ////////////string sql = string.Format("Expect>={0}", MinExpect);
                    ////////////DataView dv_stddev = new DataView(dt);
                    ////////////dv_stddev.RowFilter = sql;
                    bool                  Changed = false;
                    List <string>         keys    = assetUnits.Keys.ToList();
                    List <AssetUnitClass> vals    = assetUnits.Values.ToList();
                    //foreach (string id in assetUnits.Keys)
                    for (int ai = 0; ai < keys.Count; ai++)
                    {
                        string id = keys[ai];

                        DataTable dt = vals[ai].SummaryLine();
                        //MessageBox.Show(string.Format("资产单元{0}记录数{1}条。", assetUnits[id].UnitName, dt.Rows.Count));
                        if (this.AssetTimeSummary.ContainsKey(id) == false || (this.AssetTimeSummary.ContainsKey(id) && dt.Rows.Count != this.AssetTimeSummary[id]))
                        {
                            if (!this.AssetTimeSummary.ContainsKey(id))
                            {
                                this.AssetTimeSummary.Add(id, 0);
                            }
                            this.AssetTimeSummary[id] = dt.Rows.Count;
                            Changed = true;

                            //saveAssetLines(id, dt);//保存
                        }
                        vals[ai].SaveDataToFile();
                    }
                    //if (!Changed)//没有任何改变,不刷新
                    //    return;

                    int i = 0;
                    if (chrt.Series.Count < vals.Count - 1)
                    {
                        chrt.Series.Clear();

                        // foreach (string strName in assetUnits.Keys)
                        for (int ai = 0; ai < keys.Count; ai++)
                        {
                            string strName = keys[ai];
                            Series sr      = new Series(vals[ai].UnitName);
                            sr.ChartType = SeriesChartType.Line;
                            chrt.Series.Add(sr);
                            i++;
                        }
                        //chrt.GetToolTipText += new EventHandler<ToolTipEventArgs>(chart_ForSystemStdDev_GetToolTipText);
                    }
                    i = 0;
                    //foreach (string strName in assetUnits.Keys)

                    for (int ai = 0; ai < keys.Count; ai++)
                    {
                        //System.Threading.Thread.Sleep(5 * 1000);
                        string         strName = keys[ai];
                        DataTable      dt      = vals[ai].SummaryLine();
                        List <DataRow> drs     = dt.Select("id>0", "id desc").Take <DataRow>(Len).ToList();
                        DataTable      DispDt  = dt.Clone();
                        for (int di = 0; di < drs.Count; di++)
                        {
                            DispDt.Rows.Add(drs[di].ItemArray);
                        }
                        DataView dv = new DataView(DispDt);
                        dv.Sort = "id asc";
                        chrt.Series[i].Points.DataBindY(dv, "val");
                        i++;
                    }
                    chrt.Show();
                    //try
                    //{
                    //this.chart_ForGuide = chrt;
                    //this.chart_ForGuide.Show();
                    ////if (vals != null)
                    ////{
                    ////    this.chart_ForGuide.Invoke(new setChartCallback(setChart), chrt);
                    ////}
                    //}
                    //catch(Exception ce)
                    //{
                    //MessageBox.Show(ce.Message);
                    //}
                }
                //this.chart_ForSystemStdDev.DataSource = dv_stddev;

                //this.chart_ForSystemStdDev.Series[0].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdDev");
                //this.chart_ForSystemStdDev.Series[1].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdMa20");
                //this.chart_ForSystemStdDev.Series[2].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdMa5");
                //////cjrt.ChartAreas[0].AxisY.Maximum = 0.6;
                //////this.chart_ForSystemStdDev.ChartAreas[0].AxisY.Minimum = 0.1;
                //////this.chart_ForSystemStdDev.Show();
            }
            catch (Exception e)
            {
                LogableClass.ToLog("监控", e.Message, e.StackTrace);
            }
        }
Example #27
0
        private static void Client_GetContactComplete(object sender, TEventArgs <List <Contact> > e)

        {
            try
            {
                LogableClass.ToLog("获取联系人列表(包括公众号,联系人)", "总数:" + e.Result.Count);
                Console.WriteLine("获取联系人列表(包括公众号,联系人),总数:" + e.Result.Count);

                foreach (var item in e.Result)
                {
                    if (!contactDict.Keys.Contains(item.UserName))
                    {
                        if (item.UserName.StartsWith("@@"))
                        {
                            if (item.MemberList.Count == 0)
                            {
                                string msg = string.Format("{0}获取到的群成员数竟然是0", item.NickName);
                                client.GetBatchGetContactAsync(item.UserName);//如果成员数是0,重新获取
                                continue;
                            }
                            client.GetBatchGetContactAsync(string.Join(",", item.MemberList.Select(a => a.UserName)), item.UserName);
                        }
                        contactDict.Add(item.UserName, item);
                    }
                    else
                    {
                        contactDict[item.UserName] = item;
                    }



                    //联系人列表中包含联系人,公众号,可以通过参数做区分

                    if (item.VerifyFlag != 0)

                    {
                        //个人号
                    }

                    else

                    {
                        //公众号
                    }
                }

                //如果获取完成

                if (client.IsFinishGetContactList)
                {
                }
                if (DisplayByFrm)
                {
                    frm.RefreshContact(sender, e);
                }
            }
            catch (Exception ce)
            {
                MessageBox.Show(string.Format("{0}:{1}", ce.Message, ce.StackTrace));
            }
        }
Example #28
0
 public void Test(string strtest)
 {
     LogableClass.ToLog("远程日志", "远程调用", strtest);
 }
 public void Log(string logname, string Topic, string msg)
 {
     LogableClass.ToLog(LogName, Topic, msg);
 }
Example #30
0
        public string Init()
        {
            try
            {
                ////Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

                ////AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

                LogableClass.ToLog("实例化接口", "开始");
                if (client == null)
                {
                    client = new Client();
                }
                LogableClass.ToLog("启动二维码", "开始");
                if (DisplayByFrm)
                {
                    qrForm = new QrCodeForm();
                }

                LogableClass.ToLog("指定响应事件", "开始");



                //获取登陆之后记录的cookie,实现推送手机端登陆,取代扫码

                //若不需要,注释掉以下代码即可



                client.ExceptionCatched += Client_ExceptionCatched;;

                client.GetLoginQrCodeComplete += Client_GetLoginQrCodeComplete;;

                client.CheckScanComplete += Client_CheckScanComplete;;

                client.LoginComplete += Client_LoginComplete;

                client.DelContactListComplete += Client_DelContactListComplete;;

                client.ModContactListComplete += Client_ModContactListComplete;

                client.GetContactComplete         += Client_GetContactComplete;;
                client.BatchGetContactComplete    += Client_BatchGetContactComplete;;
                client.MPSubscribeMsgListComplete += Client_MPSubscribeMsgListComplete;;

                client.LogoutComplete += Client_LogoutComplete;;
                if (DisplayByFrm)
                {
                    frm = new frm_MainWin(client);
                    client.ReceiveMsg        += RefreshMsg;
                    this.MsgProcessCompleted += frm.RefreshMsg;
                }
                else
                {
                    client.ReceiveMsg += Client_ReceiveMsg;
                }



                //client.GetContactComplete += frm.RefreshContact;

                Console.WriteLine("小助手启动");
                LogableClass.ToLog("小助手启动", "开始");



                //获取群成员详情,需要我们主动调用,一般用不到,因为群里已经包含Member基本信息。

                //Contact chatRoom = contactDict["群UserName"];

                //string listStr = string.Join(",", chatRoom.MemberList);

                //client.GetBatchGetContactAsync(listStr, chatRoom.UserName);

                return("");
            }
            catch (Exception ce)
            {
                LogableClass.ToLog("错误", "初始化接口失败!", string.Format("{0}:{1}", ce.Message, ce.StackTrace));
                return(string.Format("{0}:{1}", ce.Message, ce.StackTrace));
            }
        }