网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

记录程序运行时间表控件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/02/25

网学网ASP.net编辑为广大网友搜集整理了:记录程序运行时间表控件绩等信息,祝愿广大网友取得需要的信息,参考学习。

using System;
using System.Collections;
using System.Data;

namespace MyTools
{
    /// <summary>
    /// Summary description for TimeTest.
    /// </summary>
    public class TimeTest
    {    
        private DataTable manager = new DataTable("manager");
        private DataTable timeList = new DataTable("timeList");
        
        public TimeTest()
        {
            #region initialize the ManagerTable to save the test cases
            DataColumn  tempColumn = new DataColumn("name",typeof(System.String));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("description",typeof(System.String));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("totalTime",typeof(System.TimeSpan));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("startTime",typeof(System.DateTime));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("testCount",typeof(System.Int32));
            manager.Columns.Add(tempColumn);
            manager.PrimaryKey =  new DataColumn[]{manager.Columns["name"]};
            #endregion

            #region initialize the TimeListTable to save the list of time span
            tempColumn = new DataColumn("name",typeof(System.String));
            timeList.Columns.Add(tempColumn);
            tempColumn = new DataColumn("time",typeof(System.TimeSpan));
            timeList.Columns.Add(tempColumn);
            tempColumn = new DataColumn("description",typeof(System.String));
            timeList.Columns.Add(tempColumn);
            #endregion

            #region initialize a test case
            this.AddProcess("__mainTest__","The default test is created by system!");
            #endregion
        }

        public TimeTest(string testName,string description)
        {
            #region initialize the ManagerTable to save the test cases
            DataColumn  tempColumn = new DataColumn("name",typeof(System.String));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("description",typeof(System.String));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("totalTime",typeof(System.TimeSpan));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("startTime",typeof(System.DateTime));
            manager.Columns.Add(tempColumn);
            tempColumn = new DataColumn("testCount",typeof(System.Int32));
            manager.Columns.Add(tempColumn);
            manager.PrimaryKey =  new DataColumn[]{manager.Columns["name"]};
            #endregion

            #region initialize the TimeListTable to save the list of time span
            tempColumn = new DataColumn("name",typeof(System.String));
            timeList.Columns.Add(tempColumn);
            tempColumn = new DataColumn("time",typeof(System.TimeSpan));
            timeList.Columns.Add(tempColumn);
            tempColumn = new DataColumn("description",typeof(System.String));
            timeList.Columns.Add(tempColumn);
            #endregion

            #region initialize a test case
            this.AddProcess(testName,description);
            #endregion
        }


        private void AddProcess(string testName,string description)
        {
            DataRow tempRow = this.manager.NewRow();
            tempRow["name"] = testName;
            tempRow["description"] = description;
            tempRow["startTime"] = DateTime.Now;
            tempRow["totalTime"] = TimeSpan.Zero;
            tempRow["testCount"] = 0;
            this.manager.Rows.Add(tempRow);
        }


        #region Begin a test
        public void BeginTest(string testName,string description)
        {
            DataRow tempRow = this.manager.Rows.Find(testName);
            if(null != tempRow)
            {
                tempRow["startTime"] = DateTime.Now;
            }
            else
            {
                this.AddProcess(testName,description);
            }
        }

        public void BeginTest(string testName)
        {
            this.BeginTest(testName,"");
        }

        public void Begin()
        {
            this.BeginTest(this.manager.Rows[0]["name"].ToString(),"");
        }
        #endregion

        #region End a test
        public void EndTest(string testName,string description)
        {
            DataRow tempRow = this.manager.Rows.Find(testName);
            if(null == tempRow)
            {
                return;
            }
            DateTime tempTime = (DateTime)tempRow["startTime"];
//            tempRow = this.timeList.NewRow();
//            tempRow["time"] = DateTime.Now - tempTime;
//            tempRow["name"] = testName;
//            tempRow["description"] = description;
//            this.timeList.Rows.Add(tempRow);
            this.manager.Rows.Find(testName)["startTime"] = DateTime.Now;
            this.manager.Rows.Find(testName)["totalTime"] = (TimeSpan)(this.manager.Rows.Find(testName)["totalTime"]) + (DateTime.Now - tempTime);
            this.manager.Rows.Find(testName)["testCount"] = (int)this.manager.Rows.Find(testName)["testCount"] + 1;
        }

        public void EndTest(string testName)
        {
            this.EndTest(testName,"");
        }

        public void End()
        {
            this.EndTest(this.manager.Rows[0]["name"].ToString(),"");
        }

        public void End(string description)
        {
            this.EndTest(this.manager.Rows[0]["name"].ToString(),description);
        }
        #endregion

        public DataTable GetTestListByName(string testName)
        {
            DataTable RtnTable = this.timeList.Clone();
            RtnTable.Columns["time"].DataType = typeof(System.Double);
            DataRow row;
            foreach(DataRow tempRow in this.timeList.Select("name = ''" + testName +"''"))
            {
                row = RtnTable.NewRow();
                if(tempRow["name"].ToString().Trim().Equals("__mainTest__"))
                {
                    row["name"] = "[System Default]";
                }
                else
                {
                    row["name"] = tempRow["name"];
                }
                row["description"] = tempRow["description"];
                row["time"] = ((TimeSpan)tempRow["time"]).TotalMilliseconds;
                RtnTable.Rows.Add(row);
            }
            return RtnTable;
        }

        public DataTable GetTestListByName()
        {
            return GetTestListByName(this.manager.Rows[0]["name"].ToString());
        }

        public double GetTestTimeByName(string testName)
        {
            return ((TimeSpan)this.manager.Rows.Find(testName)["totalTime"]).TotalMilliseconds;
        }

        public double GetTestTimeByName()
        {
            return GetTestTimeByName(this.manager.Rows[0]["name"].ToString());
        }

        public DataTable GetAllTestTime()
        {
            DataTable RtnTable = this.manager.Clone();
            RtnTable.Columns["totalTime"].DataType = typeof(System.Double);
            RtnTable.Columns.Remove("startTime");
            DataRow row;
            foreach(DataRow tempRow in this.manager.Rows)
            {
                row = RtnTable.NewRow();
                if(tempRow["name"].ToString().Trim().Equals("__mainTest__"))
                {
                    row["name"] = "[System Default]";
                }
                else
                {
                    row["name"] = tempRow["name"];
                }
                row["description"] = tempRow["description"];
                row["totalTime"] = ((TimeSpan)tempRow["totalTime"]).TotalMilliseconds;
                row["testCount"] = tempRow["testCount"];
                RtnTable.Rows.Add(row);
            }
            return RtnTable;
        }
        

        public DataTable GetAllTestList()
        {
            DataTable RtnTable = this.timeList.Clone();
            RtnTable.Columns["time"].DataType = typeof(System.Double);
            DataRow row;
            foreach(DataRow tempRow in this.timeList.Rows)
            {
                row = RtnTable.NewRow();
                if(tempRow["name"].ToString().Trim().Equals("__mainTest__"))
                {
                    row["name"] = "[System Default]";
                }
                else
                {
                    row["name"] = tempRow["name"];
                }
                row["description"] = tempRow["description"];
                row["time"] = ((TimeSpan)tempRow["time"]).TotalMilliseconds;
                RtnTable.Rows.Add(row);
            }
            return RtnTable;
        }
    }
}
  • 上一篇资讯: 进度条控件
  • 下一篇资讯: activebar控件
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号