示例#1
0
 static public bool SelfDefineEquals(MKTDT mkt1, MKTDT mkt2)
 {
     mkt1.GetType().GetProperties();
     foreach (var col in mkt1.GetType().GetProperties())
     {
         if ((col.PropertyType.Name != "String" && col.Name != "Id") && !col.GetValue(mkt1).Equals(col.GetValue(mkt2)))
         {
             return(false);
         }
     }
     return(true);
 }
示例#2
0
        static HashSet <int> InitMKT(string filePath)
        {
            MKTdict = new Dictionary <string, MKTDT>();

            StreamReader     srReadFile = new StreamReader(filePath);
            List <MKTDT>     mKTDTs     = new List <MKTDT>();
            HashSet <string> mktstr     = new HashSet <string>()
            {
                "018009", "113013", "019009", "511010", "511020", "511030"
            };
            HashSet <int> lines = new HashSet <int>();

            //循环读入
            using (var db = new MKTContext())
            {
                db.MKTDTs.Delete();
                int    i   = 0;//标记行号
                string txt = srReadFile.ReadToEnd();
                srReadFile.Close();
                string[] lineSet = txt.Split('\n');
                foreach (string strReadLine in lineSet)
                {
                    string[] strArr = strReadLine.Replace(" ", "").Split('|');
                    if (strArr.Length >= 2 && mktstr.Contains(strArr[1]))
                    {
                        MKTDT mkt = MKTDTParse(strArr);
                        if (mkt != null)
                        {
                            db.MKTDTs.Add(mkt);
                            lines.Add(i);
                            MKTdict.Add(strArr[1], mkt);//将mkt存储到临时变量里
                        }
                    }
                    i++;
                }
                db.SaveChanges();
            }
            return(lines);
        }
示例#3
0
        /**
         * 更新脚本
         **/
        static public int JobMKT(string strReadFilePath, HashSet <int> lines)
        {
            using (var db = new MKTContext())
            {
                try
                {
                    StreamReader srReadFile = new StreamReader(strReadFilePath, Encoding.Default);
                    string       txt        = srReadFile.ReadToEnd();
                    srReadFile.Close();
                    string[] lineSet = txt.Split('\n');
                    int      i       = 0; //标记行号
                    foreach (string strReadLine in lineSet)
                    {
                        if (lines.Contains(i))
                        {
                            string[] strArr = strReadLine.Replace(" ", "").Split('|');

                            MKTDT mkt = MKTDTParse(strArr);
                            if (mkt != null && !SelfDefineEquals(mkt, MKTdict[strArr[1]]))
                            {
                                MKTdict[strArr[1]] = mkt;
                                db.MKTDTs.Where(c => c.SecurityID == mkt.SecurityID).Update(c => new MKTDT()
                                {
                                    MDStreamID       = mkt.MDStreamID,
                                    SecurityID       = mkt.SecurityID,
                                    Symbol           = mkt.Symbol,
                                    TradeVolume      = mkt.TradeVolume,
                                    TotalValueTraded = mkt.TotalValueTraded,
                                    PreClosePx       = mkt.PreClosePx,
                                    OpenPrice        = mkt.OpenPrice,
                                    HighPrice        = mkt.HighPrice,
                                    LowPrice         = mkt.LowPrice,
                                    TradePrice       = mkt.TradePrice,
                                    ClosePx          = mkt.ClosePx,
                                    BuyPrice1        = mkt.BuyPrice1,
                                    BuyVolume1       = mkt.BuyVolume1,
                                    SellPrice1       = mkt.SellPrice1,
                                    SellVolume1      = mkt.SellVolume1,
                                    BuyPrice2        = mkt.BuyPrice2,
                                    BuyVolume2       = mkt.BuyVolume2,
                                    SellPrice2       = mkt.SellPrice2,
                                    SellVolume2      = mkt.SellVolume2,
                                    BuyPrice3        = mkt.BuyPrice3,
                                    BuyVolume3       = mkt.BuyVolume3,
                                    SellPrice3       = mkt.SellPrice3,
                                    SellVolume3      = mkt.SellVolume3,
                                    BuyPrice4        = mkt.BuyPrice4,
                                    BuyVolume4       = mkt.BuyVolume4,
                                    SellPrice4       = mkt.SellPrice4,
                                    SellVolume4      = mkt.SellVolume4,
                                    BuyPrice5        = mkt.BuyPrice5,
                                    BuyVolume5       = mkt.BuyVolume5,
                                    SellPrice5       = mkt.SellPrice5,
                                    SellVolume5      = mkt.SellVolume5,
                                    PreCloseIOPV     = mkt.PreCloseIOPV,
                                    IOPV             = mkt.IOPV,
                                    TradingPhaseCode = mkt.TradingPhaseCode,
                                    Timestamp        = mkt.Timestamp
                                });
                                Console.WriteLine(mkt.SecurityID + " " + mkt.TradePrice + " " + mkt.Timestamp); //屏幕打印每行数据
                            }
                        }
                        i++; // 行号+1
                    }
                    db.SaveChanges();
                }catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
            return(1);
        }