コード例 #1
0
        private void AddMeaureToData(List <string> data, Measure measure, MeasureResult measureResult, List <DimensionResult> dimensionResults)
        {
            //The CubeDimensionHeaders private class is used to convert an n-dimensional cube into a series of 2D tables to output.
            CubeDimensionHeaders cubeDimensionHeaders = new CubeDimensionHeaders(dimensionResults);

            if (measureResult.Rows.Count < 1)
            {
                return;
            }

            data.Add(GetMeasureDescription(measure));
            if (measureResult.Rows.Count == 1)
            {
                data.Add(dimensionResults[0].HeaderDescriptions);
                data.Add(measureResult.Rows[0]);
                return;
            }

            for (int rowIndex = 0; rowIndex < measureResult.Rows.Count; rowIndex++)
            {
                int dimension1Index = cubeDimensionHeaders.GetItemIndex(rowIndex, 1);
                if (dimension1Index == 0)
                {
                    data.Add("");
                    data.Add(GetSubCubeDescription(rowIndex, cubeDimensionHeaders));
                    data.Add("\t" + dimensionResults[0].HeaderDescriptions);
                }
                data.Add(cubeDimensionHeaders.GetDimensionHeader(1, dimension1Index) + "\t" + measureResult.Rows[rowIndex]);
            }
        }
コード例 #2
0
        public async Task <string> Man()
        {
            var forms = await Request.Content.ReadAsFormDataAsync();

            double height = Convert.ToDouble(forms["height"]);
            double weight = Convert.ToDouble(forms["weight"]);
            double bmi    = weight / (height * height);

            IBodyMeasureIndex bmiservice = new ManBodyMeasureIndex();

            MeasureResult result = bmiservice.Calculate(height, weight, out bmi);

            switch (result)
            {
            case MeasureResult.Less:
                return("太瘦");

            case MeasureResult.Normal:
                return("剛剛好");

            case MeasureResult.More:
                return("太胖");

            default:
                return("剛剛好");
            }
        }
コード例 #3
0
        public async Task <List <string> > CalculateCube(string systemName, SessionDetails sessionDetails, Query baseQuery, List <Dimension> dimensions, List <Measure> measures, TimeSpan timeout)
        {
            if (baseQuery?.Selection?.TableName == null)
            {
                throw new ArgumentException("The specified baseQuery must have at least a selection with a table name in order for it to be a valid query", nameof(baseQuery));
            }

            ICubesApi cubesApi = connectorFactory.CreateCubesApi(sessionDetails);

            Cube cube = new Cube(
                BaseQuery: baseQuery,
                ResolveTableName: baseQuery.Selection.TableName,
                Storage: Cube.StorageEnum.Full,
                Dimensions: dimensions,
                Measures: measures);

            CubeResult cubeResult = await cubesApi.CubesCalculateCubeSynchronouslyAsync(dataViewName, systemName, cube, (int)timeout.TotalSeconds, true);

            List <string> data = new List <string>();

            if (cubeResult?.MeasureResults != null)
            {
                for (int measureIndex = 0; measureIndex < cubeResult.MeasureResults.Count; measureIndex++)
                {
                    MeasureResult measureResult = cubeResult.MeasureResults[measureIndex];
                    Measure       measure       = measures[measureIndex];

                    AddMeaureToData(data, measure, measureResult, cubeResult.DimensionResults);
                    data.Add("");
                }
            }

            return(data);
        }
コード例 #4
0
        public ActionResult EditTemperature([Bind(Include = "Id,UserId,Value,CreatedDate")] MeasureResult measureResult)
        {
            var userid    = User.Identity.GetUserId();
            var measureId = measureResult.Id;

            if (measureResult.Value <= 28.0)
            {
                ModelState.AddModelError("Value", "Температура тіла не може бути нижче 28 градусів Цельсія");
            }
            else if (measureResult.Value >= 42.0)
            {
                ModelState.AddModelError("Value", "Температура тіла не може бути вище 42 градусів Цельсія");
            }

            if (measureResult.CreatedDate >= DateTime.Now)
            {
                ModelState.AddModelError("CreatedDate", "Некорректна дата");
            }
            else if (measureResult.CreatedDate <= DateTime.Now.AddMonths(-1))
            {
                ModelState.AddModelError("CreatedDate", "Некорректна дата");
            }


            if (ModelState.IsValid)
            {
                measureResult.Id              = measureId;
                measureResult.UserId          = userid;
                measureResult.MeasureId       = 1;
                db.Entry(measureResult).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("AllTemperature"));
            }
            return(View(measureResult));
        }
コード例 #5
0
        public ActionResult EditWeight([Bind(Include = "Id,UserId,Value,CreatedDate")] MeasureResult measureResult)
        {
            var userid = User.Identity.GetUserId();

            if (measureResult.Value <= 0.5)
            {
                ModelState.AddModelError("Value", "Вага не може бути менше 0.5 кг");
            }
            else if (measureResult.Value >= 300)
            {
                ModelState.AddModelError("Value", "Вага не може бути більше 300 кг");
            }
            if (measureResult.CreatedDate >= DateTime.Now)
            {
                ModelState.AddModelError("CreatedDate", "Некоректна дата");
            }
            else if (measureResult.CreatedDate <= DateTime.Now.AddMonths(-1))
            {
                ModelState.AddModelError("CreatedDate", "Некоректна дата");
            }

            if (ModelState.IsValid)
            {
                measureResult.UserId          = userid;
                measureResult.MeasureId       = 2;
                db.Entry(measureResult).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("AllWeight"));
            }
            return(View(measureResult));
        }
コード例 #6
0
        public ActionResult EditBloodSugar([Bind(Include = "Id,UserId,Value,CreatedDate")] MeasureResult measureResult)
        {
            var userid = User.Identity.GetUserId();

            if (measureResult.Value <= 2.8)
            {
                ModelState.AddModelError("Value", "Рівень цукру у крові не може бути менше 2.8 ммоль");
            }
            else if (measureResult.Value >= 7.8)
            {
                ModelState.AddModelError("Value", "Рівень цукру у крові не може бути більше 7.8 ммоль");
            }
            if (measureResult.CreatedDate >= DateTime.Now)
            {
                ModelState.AddModelError("CreatedDate", "Некоректна дата");
            }
            else if (measureResult.CreatedDate <= DateTime.Now.AddMonths(-1))
            {
                ModelState.AddModelError("CreatedDate", "Некоректна дата");
            }


            if (ModelState.IsValid)
            {
                measureResult.UserId          = userid;
                measureResult.MeasureId       = 4;
                db.Entry(measureResult).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("AllBloodSugar"));
            }
            return(View(measureResult));
        }
コード例 #7
0
        public async Task <string> Men()
        {
            var forms = await Request.Content.ReadAsFormDataAsync();

            double height = double.Parse(forms["height"]);
            double weight = double.Parse(forms["weight"]);

            BMIService.IBodyMeasureIndex bmiService = null;
            bmiService = new BMIService.MenBodyMeasureIndex();
            double        bmi    = 0.0d;
            MeasureResult result = bmiService.caculute(height, weight, out bmi);


            switch (result)
            {
            case MeasureResult.Less:
                return("太瘦");

            case MeasureResult.Normal:
                return("剛好");

            case MeasureResult.More:
                return("尼太胖!!!");

            default:
                return("");
            }
        }
コード例 #8
0
        public async Task <ActionResult> DeleteConfirmedBloodSugar(int id)
        {
            MeasureResult measureResult = await db.MeasureResults.FindAsync(id);

            db.MeasureResults.Remove(measureResult);
            await db.SaveChangesAsync();

            return(RedirectToAction("AllBloodSugar"));
        }
コード例 #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入身高 (公尺) :");
            string inputHeight = Console.ReadLine();

            Console.WriteLine("請輸入體重 (公斤) :");
            string inputWeight = Console.ReadLine();

            Console.WriteLine("你是公的嗎?(請輸入y/n)");
            String genderIdent = Console.ReadLine();

            BMIService.IBodyMeasureIndex bmiService = null;
            bmiService = new BMIService.WomenBodyMeasureIndex();
            double bmi = 0.0d;


            bool isMale = true;

            isMale = (genderIdent == "y");

            if (isMale)
            {
                bmiService = new MenBodyMeasureIndex();
            }
            else
            {
                bmiService = new WomenBodyMeasureIndex();
            }


            double height = double.Parse(inputHeight);
            double weight = double.Parse(inputWeight);


            MeasureResult result = bmiService.caculute(height, weight, out bmi);

            Console.WriteLine(bmi);


            switch (result)
            {
            case MeasureResult.Less:
                Console.WriteLine("太瘦");
                break;

            case MeasureResult.Normal:
                Console.WriteLine("剛剛好");
                break;

            case MeasureResult.More:
                Console.WriteLine("尼太胖!!!");
                break;
            }


            Console.ReadLine();
        }
コード例 #10
0
ファイル: SSPMain.cs プロジェクト: bilbor987/SSP
        private static void TabuSearch()
        {
            Console.WriteLine(" *** Tabu search solution *** ");
            var tabuCalculator = new SSTabuSearchCalculator();

            Console.WriteLine("\n IA8 set ");
            MeasureResult measureResultforIA8 = Measurement.Exec(tabuCalculator.Calculate, Dataset.IA8);

            Console.WriteLine($"\t{measureResultforIA8.CalculateAverage().TotalMilliseconds} miliseconds");
        }
コード例 #11
0
        private void PerformMeasuring(int timesOfMeasure)
        {
            var result = new MeasureResult
            {
                Mapping = RepeatAndAccumulateMilliseconds(timesOfMeasure, StaticMapper <LargeFoo, LargeFoo> .Map),
                Native  = RepeatAndAccumulateMilliseconds(timesOfMeasure, LargeFoo.NativeMap2)
            };

            _output.WriteLine($"Amount of mapping iterations: {timesOfMeasure}\n" + result);
        }
コード例 #12
0
        public ActionResult EditBloodSugar(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            MeasureResult measureResult = db.MeasureResults.Find(id);

            if (measureResult != null)
            {
                return(View(measureResult));
            }
            return(HttpNotFound());
        }
コード例 #13
0
        // Delete
        public async Task <ActionResult> DeleteBloodSugar(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MeasureResult measureResult = await db.MeasureResults.FindAsync(id);

            if (measureResult == null)
            {
                return(HttpNotFound());
            }
            return(View(measureResult));
        }
コード例 #14
0
ファイル: SSPMain.cs プロジェクト: bilbor987/SSP
        private static void Backtracking()
        {
            Console.WriteLine(" *** Backtracking solution *** ");
            var backtrackingCalculator = new SSBacktrackingCalculator();

            Console.WriteLine("\n IA8 set ");
            MeasureResult measureResultforIA8 = Measurement.Exec(backtrackingCalculator.Calculate, Dataset.IA8);

            Console.WriteLine($"\t{measureResultforIA8.CalculateAverage().TotalMilliseconds} miliseconds");

            Console.WriteLine("\n IA10 set ");
            MeasureResult measureResultforIA10 = Measurement.Exec(backtrackingCalculator.Calculate, Dataset.IA10);

            Console.WriteLine($"\t{measureResultforIA10.CalculateAverage().TotalMilliseconds} miliseconds");
        }
コード例 #15
0
        private void addRowToDataGrid(MeasureResult r)
        {
            MeasureResultTera mr = r as MeasureResultTera;
            int num = measureResultTable.Rows.Add(1);

            measureResultTable.Rows[num].Cells["cycle_number"].Value        = mr.CycleNumber;
            measureResultTable.Rows[num].Cells["stat_measure_number"].Value = mr.StatCycleNumber;
            measureResultTable.Rows[num].Cells["voltage"].Value             = mr.Voltage;
            measureResultTable.Rows[num].Cells["result"].Value = mr.BringingResult;


            //Служебная информация
            measureResultTable.Rows[num].Cells["first_measure"].Value = mr.FirstMeasure;
            measureResultTable.Rows[num].Cells["last_measure"].Value  = mr.LastMeasure;
            measureResultTable.Rows[num].Cells["time"].Value          = mr.MeasureTime;
            measureResultTable.Rows[num].Cells["range"].Value         = mr.Range;
            //Служебная информация
        }
コード例 #16
0
        public async Task <string> Women()
        {
            var forms = await Request.Content.ReadAsFormDataAsync();

            /*
             * string inputHeight = forms["height"];
             * double height = 0.0d;
             * if (!double.TryParse(inputHeight, out height))
             * {
             *  return "您輸入的不是數字。";
             * }
             * string inputWeight = forms["weight"];
             * double weight = 0.0d;
             * if (!double.TryParse(inputWeight, out weight))
             * {
             *  return "您輸入的不是數字。";
             *
             * }*/
            double height = Convert.ToDouble(forms["height"]);
            double weight = Convert.ToDouble(forms["weight"]);
            double bmi    = weight / (height * height);

            IBodyMeasureIndex bmiservice = new WomanBodyMeasureIndex();


            MeasureResult result = bmiservice.Calculate(height, weight, out bmi);

            switch (result)
            {
            case MeasureResult.Less:
                return("太瘦");

            case MeasureResult.Normal:
                return("剛剛好");

            case MeasureResult.More:
                return("太胖");

            default:
                return("剛剛好");
            }
        }
コード例 #17
0
        public void refreshResultsPage(MeasureResultCollection col)
        {
            if (!measureListCB.Items.Contains(col.Name))
            {
                measureListCB.Items.Add(col.Name);
                ResultCollections.Add(col.Clone());
            }
            else
            {
                for (int i = 0; i < ResultCollections.Count; i++)
                {
                    if (ResultCollections[i].Name == col.Name)
                    {
                        ResultCollections[i] = col.Clone();
                        break;
                    }
                }
            }

            if (measureListCB.SelectedIndex == -1 && measureListCB.Items.Count > 0)
            {
                measureListCB.SelectedIndex = 0;
            }
            if (measureListCB.Text == col.Name)
            {
                if (measureResultTable.Rows.Count != col.Count)
                {
                    if (col.Count < measureResultTable.Rows.Count)
                    {
                        measureResultTable.Rows.Clear();
                    }
                    int dif = col.Count - measureResultTable.Rows.Count;

                    for (int i = dif; i > 0; i--)
                    {
                        MeasureResult mr = col.ResultsList[col.Count - i];
                        addRowToDataGrid(mr);
                    }
                }
            }
        }
コード例 #18
0
ファイル: SSPMain.cs プロジェクト: bilbor987/SSP
        private static void NeighborhoodSearch()
        {
            Console.WriteLine(" *** Neighborhood search solution *** ");
            var neighborhoodCalculator = new SSNeighborhoodSearchCalculator();

            Console.WriteLine("\n IA8 set ");
            MeasureResult measureResultforIA8 = Measurement.Exec(neighborhoodCalculator.Calculate, Dataset.IA8);

            Console.WriteLine($"\t{measureResultforIA8.CalculateAverage().TotalMilliseconds} miliseconds");

            //Console.WriteLine("\n IA10 set ");
            //MeasureResult measureResultforIA10 = Measurement.Exec(neighborhoodCalculator.Calculate, Dataset.IA10);
            //Console.WriteLine($"\t{measureResultforIA10.CalculateAverage().TotalMilliseconds} miliseconds");

            //Console.WriteLine("\n IA50 set ");
            //MeasureResult measureResultforIA50 = Measurement.Exec(neighborhoodCalculator.Calculate, Dataset.IA50);
            //Console.WriteLine($"\t{measureResultforIA50.CalculateAverage().TotalMilliseconds} miliseconds");

            //Console.WriteLine("\n IA100 set ");
            //MeasureResult measureResultforIA100 = Measurement.Exec(neighborhoodCalculator.Calculate, Dataset.IA100);
            //Console.WriteLine($"\t{measureResultforIA100.CalculateAverage().TotalMilliseconds} miliseconds");
        }
コード例 #19
0
        public void SerializationConsistency()
        {
            var expected = new MeasureResult(Modes.INC0_AZI0_GTF0, DateTime.Now,
                                             new string[] { "N", "AZI", "INC" },
                                             new Enumerable <double[]>()
            {
                new double[] { 1, 200.3, 100.8 },
                new double[] { 2, 0, 1e100 },
                new double[] { 3, 999, -1e100 },
            });

            var serialized = expected.SerializeAsync().GetAwaiter().GetResult();
            var filePath   = Path.Combine(Path.GetTempPath(), serialized.FileName);

            using (var file = File.Create(filePath))
            {
                file.Write(serialized.Content);
            }
            var actual = MeasureResult.DeserializeAsync(serialized.FileName, File.ReadAllBytes(filePath)).GetAwaiter().GetResult();

            Assert.AreEqual(expected, actual);
        }
コード例 #20
0
        public ActionResult AddHeartRate([Bind(Include = "UserId,Value,CreatedDate")] MeasureResult measureResult)
        {
            var    userid   = User.Identity.GetUserId();
            double eps      = 1E-14;
            double compareV = Math.Abs(measureResult.Value % 1);

            if (compareV > eps)
            {
                ModelState.AddModelError("Value", "Вводьте ціле число");
            }
            if (measureResult.Value <= 35)
            {
                ModelState.AddModelError("Value", "Пульс не може бути менше 35 ударів за хвилину");
            }
            else if (measureResult.Value >= 110)
            {
                ModelState.AddModelError("Value", "Пульс не може бути більше 110 ударів за хвилину");
            }
            if (measureResult.CreatedDate >= DateTime.Now)
            {
                ModelState.AddModelError("CreatedDate", "Некоректна дата");
            }
            else if (measureResult.CreatedDate <= DateTime.Now.AddMonths(-1))
            {
                ModelState.AddModelError("CreatedDate", "Некоректна дата");
            }

            if (ModelState.IsValid)
            {
                measureResult.UserId          = userid;
                measureResult.MeasureId       = 5;
                db.Entry(measureResult).State = EntityState.Added;
                db.SaveChanges();

                return(RedirectToAction("HeartRate"));
            }
            return(View(measureResult));
        }
コード例 #21
0
        public async Task<string> Women()
        {
            var forms = await Request.Content.ReadAsFormDataAsync();

            double height = Convert.ToDouble(forms["height"]);
            double weight = Convert.ToDouble(forms["weight"]);

            IBodyMeasureIndex bmiService = new WomenBodyMeasureIndex();
            double bmi = 0.0d;
            MeasureResult result = bmiService.Calculate(height, weight, out bmi);

            switch (result)
            {
                case MeasureResult.Less:
                    return "太瘦";
                case MeasureResult.More:
                    return "太胖";
                case MeasureResult.Normal:
                    return "剛好";
                default:
                    return "";
            }
        }
コード例 #22
0
ファイル: SSPMain.cs プロジェクト: bilbor987/SSP
        private static void GeneticAlgorithm()
        {
            Console.WriteLine(" *** Genetic algorithm solution *** ");
            var genetic = new SSGeneticCalculator();

            //Console.WriteLine("\n IA8 set ");
            //MeasureResult measureResultforIA8 = Measurement.Exec(genetic.Calculate, Dataset.IA8);
            //Console.WriteLine($"\t{measureResultforIA8.CalculateAverage().TotalMilliseconds} miliseconds");

            //Console.WriteLine("\n IA10 set ");
            //MeasureResult measureResultforIA10 = Measurement.Exec(genetic.Calculate, Dataset.IA10);
            //Console.WriteLine($"\t{measureResultforIA10.CalculateAverage().TotalMilliseconds} miliseconds");

            //Console.WriteLine("\n IA50 set ");
            //MeasureResult measureResultforIA50 = Measurement.Exec(genetic.Calculate, Dataset.IA50);
            //Console.WriteLine($"\t{measureResultforIA50.CalculateAverage().TotalMilliseconds} miliseconds");


            Console.WriteLine("\n IA100 set ");
            MeasureResult measureResultforIA100 = Measurement.Exec(genetic.Calculate, Dataset.IA100);

            Console.WriteLine($"\t{measureResultforIA100.CalculateAverage().TotalMilliseconds} miliseconds");
        }
コード例 #23
0
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入身高(公尺):");
            string inputHeight = Console.ReadLine();
            double height      = 0.0d;

            if (!double.TryParse(inputHeight, out height))
            {
                Console.WriteLine("您輸入的不是數字。");
                Console.ReadLine();
                return;
            }

            Console.WriteLine("請輸入體重(公斤):");
            string inputWeight = Console.ReadLine();
            double weight      = 0.0d;

            if (!double.TryParse(inputWeight, out weight))
            {
                Console.WriteLine("您輸入的不是數字。");
                Console.ReadLine();
                return;
            }
            //double height = double.Parse(inputHeight);
            //double weight = double.Parse(inputWeight);

            Console.WriteLine("請問你的性別?");
            string inputSex = Console.ReadLine();
            bool   isMale   = (inputSex == "M");

            double bmi = weight / (height * height);

            Console.WriteLine("結果是:" + bmi);
            if (bmi < 18)
            {
                Console.WriteLine("太瘦");
            }//ssss
            else
            {
                if (bmi > 22)
                {
                    Console.WriteLine("太胖");
                }
                else
                {
                    Console.WriteLine("剛剛好");
                }
            }

            IBodyMeasureIndex bmiservice = null;

            if (isMale)
            {
                bmiservice = new ManBodyMeasureIndex();
            }
            else
            {
                bmiservice = new WomanBodyMeasureIndex();
            }
            MeasureResult result = bmiservice.Calculate(height, weight, out bmi);

            switch (result)
            {
            case MeasureResult.Less:
                Console.WriteLine("太瘦");
                break;

            case MeasureResult.Normal:
                Console.WriteLine("剛剛好");
                break;

            case MeasureResult.More:
                Console.WriteLine("太胖");
                break;

            default:
                break;
            }

            Console.ReadLine();
        }
コード例 #24
0
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入身高 (公尺):");
            string heightInput = Console.ReadLine();

            Console.WriteLine("請輸入體重 (公斤):");
            string weightInput = Console.ReadLine();

            Console.WriteLine("你是公的嗎? (請輸入y/n):");
            string genderIdent = Console.ReadLine();

            double height = 0.0d;

            if (!double.TryParse(heightInput, out height))
            {
                Console.WriteLine("你輸入的不是數字。");
                Console.ReadLine();
                return;
            }

            double weight = 0.0d;

            if (!double.TryParse(weightInput, out weight))
            {
                Console.WriteLine("你輸入的不是數字。");
                Console.ReadLine();
                return;
            }

            double bmi    = 0.0d;
            bool   isMale = true;

            isMale = (genderIdent == "y");

            IBodyMeasureIndex bmiService = null;

            if (isMale)
            {
                bmiService = new MenBodyMeasureIndex();
            }
            else
            {
                bmiService = new WomenBodyMeasureIndex();
            }

            MeasureResult result = bmiService.Calculate(height, weight, out bmi);

            Console.WriteLine("BMI: {0}", bmi);
            Console.WriteLine("BMI Formatted: {0:0.00}", bmi);

            switch (result)
            {
            case MeasureResult.Less:
                Console.WriteLine("太瘦");
                break;

            case MeasureResult.More:
                Console.WriteLine("太胖");
                break;

            case MeasureResult.Normal:
                Console.WriteLine("剛好");
                break;
            }

            Console.ReadLine();
        }
コード例 #25
0
ファイル: Database.cs プロジェクト: kingofcrabs/BoundaryID
             private bool Save2DataBase()
        {
            this.DataBase = new AccessPoint();
            DataBase.Filename = "BoundaryID.sdf";
            DataBase.Filepath = Helper.GetExeParentFolder() +"Database\\";
            DataBase.Password = Others.ReadDatabasePW();
            DataBase.UseLikeStatement = false; // default = false
            DataBase.WildCardLeft = true; // In conjunction with UseLikeStatement
            DataBase.WildCardRight = true;
            string sDate = DateTime.Now.ToString("yyMMddHHmmss");

            if (!Directory.Exists(DataBase.Filepath))
                Directory.CreateDirectory(DataBase.Filepath);

            string fullPath = DataBase.Filepath + DataBase.Filename;

            //if is too big, rename it.
            if (File.Exists(fullPath))
            {
                System.IO.FileInfo fInfo = new FileInfo(fullPath);
                const int oneK = 1000;
                if (fInfo.Length > oneK * oneK * 500)
                {
                    RenameFile(DataBase.Filepath, DataBase.Filename, sDate);
                }
            }
            //1 create database
            string errMsg = "";
            if (!DataBase.CreateDataBase(true,ref errMsg))
            {
                SetInfo(errMsg, Brushes.Red);
                return false;
            }
            //2 create tables
            if(!DataBase.CheckTable(new MeasureResult(), ref errMsg))
            {
                if (!DataBase.CreateTable(new MeasureResult(), ref errMsg))
                {
                    SetInfo(errMsg, Brushes.Red);
                    return false;
                }
            }

            if (!DataBase.CheckTable(new AcquiredImage(), ref errMsg))
            {
                if (!DataBase.CreateTable(new AcquiredImage(), ref errMsg))
                {
                    SetInfo(errMsg, Brushes.Red);
                    return false;
                }
            }

            //3 插入结果
            
            for (int i = 0; i < MeasureWindow.allMeasureInfos.Count; i++)
            {
                int index = 0;
                foreach (BoundaryID.MeasureWindow.MeasureInfo info in MeasureWindow.allMeasureInfos[i])
                {
                    index++;
                    string sSeq = string.Format("{0}-{1}", i + 1, index);
                    MeasureResult result = new MeasureResult(sDate,sSeq, info);
                    DataBase.Insert(result);
                }
            }
                        
            AcquiredImage imageInfo = new AcquiredImage();
            imageInfo.ImageData = ReadImage(Helper.GetLatestImagePath()); ;
            imageInfo.ImageID = sDate;
            
            imageInfo.hasBuffy = GlobalVals.hasBuffy.ToString();
            AcquiredImage imageInfo2 = new AcquiredImage();
            imageInfo2.ImageData = ReadImage(Helper.GetExeParentFolder() + "Data\\snapShot.png");
            imageInfo2.ImageID = sDate + "M";
            imageInfo2.hasBuffy = GlobalVals.hasBuffy.ToString();
            DataBase.Insert(imageInfo);
            DataBase.Insert(imageInfo2);
            return true;
        }