private List <ExceptionInfo> WriteList()
        {
            Exception     ex1            = LogHelperTest.CreateException("M1-" + Guid.NewGuid().ToString());
            ExceptionInfo exceptionInfo1 = ExceptionInfo.Create(ex1);

            exceptionInfo1.Addition = "If you liked Fiddler, we also recommend";
            //exceptionInfo1.A1 = "aaaaaaaaaaaa";


            System.Threading.Thread.Sleep(1000);


            Exception     ex2            = LogHelperTest.CreateException("M2-" + Guid.NewGuid().ToString());
            ExceptionInfo exceptionInfo2 = ExceptionInfo.Create(ex2);

            exceptionInfo2.Addition = "Test Studio - Create Automated Tests Quickly";
            //exceptionInfo2.A1 = "aaaaaaaaaaaa";


            MongoDbWriter        writer = new MongoDbWriter();
            List <ExceptionInfo> list1  = new List <ExceptionInfo> {
                exceptionInfo1, exceptionInfo2
            };

            writer.Write(list1);

            System.Threading.Thread.Sleep(1000);

            return(list1);
        }
Example #2
0
        public void Test4()
        {
            WriterSection mongodb = new WriterSection();

            mongodb.Name = "MongoDb";
            mongodb.Type = "ClownFish.Log.Serializer.MongoDbWriter, ClownFish.Log";

            MongoDbWriter writer = new MongoDbWriter();

            writer.Init(mongodb);
        }
Example #3
0
        /// <summary>
        /// 从MongoDB中读取日志数据
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="connectionString"></param>
        /// <returns></returns>
        public List <ExceptionInfo> Execute(DateTime start, DateTime end, string connectionString)
        {
            MongoDbWriter mongo = new MongoDbWriter();

            mongo.SetConnectionString(connectionString);

            List <ExceptionInfo> list = mongo.GetList <ExceptionInfo>(x => x.Time >= start && x.Time < end);

            if (list.Count > 2000)
            {
                list = list.Take(2000).ToList();
            }


            return(list);
        }
        static void Main(string[] args)
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion
                                    <SupermarketContext, Configuration>());

            ClientMySQL.MySQLReader.MoveData();
            ExcelReader.ExtractReportNames();
            MongoDbWriter.Write();
            SQLiteReader.MoveData();

            PDFFileCreator.CreateTable("sampleForTest.pdf");
            XMLFIleCreator.CreateXMLFile("salesForTest.xml");

            ExcelWriter.CreateExcelTable();
            XMLFileReader.ParseXML("../../Vendor-Expenses.xml");
        }
        public void Test_Write()
        {
            Exception     ex             = LogHelperTest.CreateException("M-" + Guid.NewGuid().ToString());
            ExceptionInfo exceptionInfo1 = ExceptionInfo.Create(ex);

            exceptionInfo1.Addition = "If you liked Fiddler, we also recommend";

            MongoDbWriter writer = new MongoDbWriter();

            writer.Write(exceptionInfo1);


            ExceptionInfo exceptionInfo2 = writer.Get <ExceptionInfo>(exceptionInfo1.InfoGuid);

            Assert.AreEqual(exceptionInfo1.Message.ToString(), exceptionInfo2.Message.ToString());
            Assert.AreEqual(exceptionInfo1.Addition.ToString(), exceptionInfo2.Addition.ToString());

            writer.Delete <ExceptionInfo>(exceptionInfo1.InfoGuid);
        }
        public void Test_GetPageList()
        {
            // 写入2条数据
            List <ExceptionInfo> list = WriteList();


            // 主要测试这个方法
            int      totalCount = 0;
            DateTime t1         = DateTime.Now.AddYears(-10);
            DateTime t2         = DateTime.Now;

            Expression <Func <ExceptionInfo, bool> > func = x => x.Time >= t1 && x.Time < t2;

            MongoDbWriter        writer = new MongoDbWriter();
            List <ExceptionInfo> list2  = writer.GetPageList <ExceptionInfo>(0, 2, func, out totalCount);


            // 确认数据是不是成功读取到
            Assert.AreEqual(2, list2.Count);
        }
        public void Test_GetList()
        {
            // 写入2条数据
            List <ExceptionInfo> list = WriteList();


            // 主要测试这个方法
            DateTime t1 = DateTime.Now.AddDays(-1);
            DateTime t2 = DateTime.Now;

            MongoDbWriter        writer = new MongoDbWriter();
            List <ExceptionInfo> list2  = writer.GetList <ExceptionInfo>(t1, t2);

            // 确认数据是不是成功读取到
            ExceptionInfo info1 = list2.Find(x => x.InfoGuid == list[0].InfoGuid);

            Assert.IsNotNull(info1);

            ExceptionInfo info2 = list2.Find(x => x.InfoGuid == list[1].InfoGuid);

            Assert.IsNotNull(info2);
        }
        public void Test_WriteList()
        {
            // 写入2条数据
            List <ExceptionInfo> list = WriteList();

            MongoDbWriter        writer = new MongoDbWriter();
            List <ExceptionInfo> list2  = writer.GetList <ExceptionInfo>(
                x => x.InfoGuid == list[0].InfoGuid || x.InfoGuid == list[1].InfoGuid);

            list2 = (from x in list2 orderby x.Time descending select x).ToList();


            Assert.AreEqual(2, list2.Count);

            Assert.AreEqual(list[0].Message.ToString(), list2[1].Message.ToString());
            Assert.AreEqual(list[0].Addition.ToString(), list2[1].Addition.ToString());

            Assert.AreEqual(list[1].Message.ToString(), list2[0].Message.ToString());
            Assert.AreEqual(list[1].Addition.ToString(), list2[0].Addition.ToString());

            //writer.Delete<ExceptionInfo>(exceptionInfo1.InfoGuid, exceptionInfo2.InfoGuid);
        }
Example #9
0
        public void GenerateMongoDbData()
        {
            var mongoClient   = new MongoClient(MongoDbHost);
            var mongoDatabase = mongoClient.GetDatabase(MongoDbName);

            var hardDrivesMongoRepository    = new GenericMongoRepository <HardDriveMongoModel>(mongoDatabase);
            var memoriesMongoRepository      = new GenericMongoRepository <MemoryMongoModel>(mongoDatabase);
            var motherboardsMongoRepository  = new GenericMongoRepository <MotherboardMongoModel>(mongoDatabase);
            var processorsMongoRepository    = new GenericMongoRepository <ProcessorMongoModel>(mongoDatabase);
            var videoCardsMongoRepository    = new GenericMongoRepository <VideoCardMongoModel>(mongoDatabase);
            var computerShopsMongoRepository = new GenericMongoRepository <ComputerShopMongoModel>(mongoDatabase);
            var computersMongoRepository     = new GenericMongoRepository <ComputerMongoModel>(mongoDatabase);

            var writer = new MongoDbWriter();

            writer.GenerateHardDrives(hardDrivesMongoRepository, RandomGenerator.Create);
            writer.GenerateMemories(memoriesMongoRepository, RandomGenerator.Create);
            writer.GenerateMotherboards(motherboardsMongoRepository, RandomGenerator.Create);
            writer.GenerateProcessors(processorsMongoRepository, RandomGenerator.Create);
            writer.GenerateVideoCards(videoCardsMongoRepository, RandomGenerator.Create);
            writer.GenerateComputerShops(computerShopsMongoRepository, RandomGenerator.Create);
            writer.GenerateComputers(hardDrivesMongoRepository, memoriesMongoRepository, motherboardsMongoRepository, processorsMongoRepository, videoCardsMongoRepository, computerShopsMongoRepository, computersMongoRepository, RandomGenerator.Create);
        }
Example #10
0
        public static void Main()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion <ComputersFactoryDbContext, Configuration>());

            var dbContext = new ComputersFactoryDbContext();
            var worker    = new ComputersFactoryUnitOfWork(dbContext);

            var mongoClient   = new MongoClient(MongoDbHost);
            var mongoDatabase = mongoClient.GetDatabase(MongoDbName);

            var hardDrivesMongoRepository    = new GenericMongoRepository <HardDriveMongoModel>(mongoDatabase);
            var memoriesMongoRepository      = new GenericMongoRepository <MemoryMongoModel>(mongoDatabase);
            var motherboardsMongoRepository  = new GenericMongoRepository <MotherboardMongoModel>(mongoDatabase);
            var processorsMongoRepository    = new GenericMongoRepository <ProcessorMongoModel>(mongoDatabase);
            var videoCardsMongoRepository    = new GenericMongoRepository <VideoCardMongoModel>(mongoDatabase);
            var computerShopsMongoRepository = new GenericMongoRepository <ComputerShopMongoModel>(mongoDatabase);
            var computersMongoRepository     = new GenericMongoRepository <ComputerMongoModel>(mongoDatabase);

            var writer          = new MongoDbWriter();
            var randomGenerator = RandomGenerator.Create;

            writer.GenerateHardDrives(hardDrivesMongoRepository, randomGenerator);
            writer.GenerateMemories(memoriesMongoRepository, randomGenerator);
            writer.GenerateMotherboards(motherboardsMongoRepository, randomGenerator);
            writer.GenerateProcessors(processorsMongoRepository, randomGenerator);
            writer.GenerateVideoCards(videoCardsMongoRepository, randomGenerator);
            writer.GenerateComputerShops(computerShopsMongoRepository, randomGenerator);
            writer.GenerateComputers(hardDrivesMongoRepository, memoriesMongoRepository, motherboardsMongoRepository, processorsMongoRepository, videoCardsMongoRepository, computerShopsMongoRepository, computersMongoRepository, randomGenerator);

            var hardDrivesRepository    = new GenericRepository <HardDrive>(dbContext);
            var memoriesRepository      = new GenericRepository <Memory>(dbContext);
            var motherboardsRepository  = new GenericRepository <Motherboard>(dbContext);
            var processorsRepository    = new GenericRepository <Processor>(dbContext);
            var videoCardsRepository    = new GenericRepository <VideoCard>(dbContext);
            var computerShopsRepository = new GenericRepository <ComputerShop>(dbContext);
            var computersRepository     = new GenericRepository <Computer>(dbContext);


            var migrator = new MongoToSqlMigrator();

            migrator.TransferHardDriveDataToSQL(hardDrivesRepository, hardDrivesMongoRepository);
            RefreshContext(dbContext);

            migrator.TransferMemoryDataToSQL(memoriesRepository, memoriesMongoRepository);
            RefreshContext(dbContext);

            migrator.TransferMotherboardDataToSQL(motherboardsRepository, motherboardsMongoRepository);
            RefreshContext(dbContext);

            migrator.TransferProcessorDataToSQL(processorsRepository, processorsMongoRepository);
            RefreshContext(dbContext);

            migrator.TransferVideoCardDataToSQL(videoCardsRepository, videoCardsMongoRepository);
            RefreshContext(dbContext);

            migrator.TransferComputerShopDataToSQL(computerShopsRepository, computerShopsMongoRepository);
            RefreshContext(dbContext);

            migrator.TransferComputerDataToSQL(hardDrivesRepository, memoriesRepository, motherboardsRepository, processorsRepository, videoCardsRepository, computerShopsRepository, computersRepository, computersMongoRepository);
            RefreshContext(dbContext);
        }
Example #11
0
        public List <GroupResult> Search(string connectionString, DateTime start, DateTime end)
        {
            MongoDbWriter mongo = new MongoDbWriter();

            mongo.SetConnectionString(connectionString);

            Stopwatch watch = Stopwatch.StartNew();

            // 从数据库中查询数据
            List <PerformanceInfo> list = mongo.GetList <PerformanceInfo>(x => x.Time >= start && x.Time < end);

            // 记录查询时间
            watch.Stop();
            this.LastQueryTime = watch.Elapsed;


            // 先准备一个字典,用于汇总分析结果
            Dictionary <string, GroupResult> dict = new Dictionary <string, GroupResult>(list.Count);

            foreach (var info in list)
            {
                string key = GetGroupKey(info);

                GroupResult g = null;
                if (dict.TryGetValue(key, out g))
                {
                    g.Count++;
                    g.List.Add(info);
                }
                else
                {
                    g       = new GroupResult();
                    g.Count = 1;
                    g.List  = new List <PerformanceInfo>();
                    g.List.Add(info);

                    if (key.Length > 100 && info.HttpInfo == null)
                    {
                        // 此时KEY是根据SQL来生成的,但是SQL有可能很长,这里就取短一点
                        key = key.Substring(0, 100) + "...";
                    }

                    g.Url     = key;
                    dict[key] = g;
                }
            }


            // 计算平均时间
            foreach (var kvp in dict)
            {
                long sumTime = 0;
                foreach (var info in kvp.Value.List)
                {
                    sumTime += info.ExecuteTime.Ticks;
                }

                kvp.Value.AvgTime = TimeSpan.FromTicks(sumTime / kvp.Value.List.Count);
            }

            return((from x in dict
                    //where x.Value.Count > 5 && x.Value.Url.StartsWith("http://developers.mysoft.com.cn:9090/")
                    select x.Value
                    ).ToList());
        }