Esempio n. 1
0
        /** 콜스택 목록 가져오기
         *
         *	@param  seperate_version    true이면 버전을 구분해서 정보를 가져온다. false이면 버전을 구분하지 않고 가져온다.
         *	@param  specific_version    특정 버전의 정보만 가져온다. 이 값이 null이 아니면, seperate_version 값은 무시된다.
         *
         */
        public static bool LoadCallstackList(int project_uid, int pageNo, int pageSize, int fromDate, int toDate, bool seperate_version, string specific_version, int hideResolved, ForEachCallstackGroup func, out int totalPageSize)
        {
            totalPageSize = 0;

            if (fromDate < 0)
                fromDate = kSampleBegin;
            if (toDate < 0)
                toDate = kSampleEnd;

            string procedureName = "usp_select_recent_report_groups";
            if (seperate_version == false && specific_version == null)
                procedureName = "usp_select_recent_report_groups_only";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                try
                {
                    conn.Open();

                    SqlCommand cmd1 = new SqlCommand(procedureName, conn);
                    cmd1.CommandType = CommandType.StoredProcedure;

                    SqlParameter returned = cmd1.CreateParameter();
                    returned.Direction = ParameterDirection.ReturnValue;
                    cmd1.Parameters.Add(returned);

                    cmd1.Parameters.AddWithValue("@project_uid", project_uid);
                    cmd1.Parameters.AddWithValue("@day_from", fromDate);
                    cmd1.Parameters.AddWithValue("@day_to", toDate);
                    cmd1.Parameters.AddWithValue("@pageNumber", pageNo);
                    cmd1.Parameters.AddWithValue("@cntPerPage", pageSize);
                    cmd1.Parameters.AddWithValue("@hideResolved", hideResolved);

                    if (specific_version != null)
                        cmd1.Parameters.AddWithValue("@specific_version", specific_version);

                    SqlDataReader reader = cmd1.ExecuteReader();

                    while (reader.Read())
                    {
                        int count = reader.GetInt32(0);
                        int callstackUid = reader.GetInt32(1);
                        string funcname = reader.GetString(2);
                        string version = reader.GetString(3);

                        DateTime latestTime = reader.GetDateTime(4); // 가장 최근에 보고를 받은 시각
                        string relativeTime = GetRelativeTimeString(latestTime);

                        string assinged = reader.GetString(5);
                        int num_comments = reader.GetInt32(6);

                        func(count, callstackUid, funcname, RemoveUnwantedChars(version), latestTime, relativeTime, assinged, num_comments);
                    }

                    reader.Close();

                    double numItems = (int)returned.Value;
                    totalPageSize = (int)Math.Ceiling(numItems / pageSize);
                }
                catch (System.Exception)
                {
                    return false;
                }
            }

            return true;
        }
Esempio n. 2
0
        /** 콜스택 목록 가져오기
         *
         *	@param  seperate_version    true이면 버전을 구분해서 정보를 가져온다. false이면 버전을 구분하지 않고 가져온다.
         *	@param  specific_version    특정 버전의 정보만 가져온다. 이 값이 null이 아니면, seperate_version 값은 무시된다.
         *
         */
        public static bool LoadCallstackList(int project_uid, int pageNo, int pageSize, int fromDate, int toDate, bool seperate_version, string specific_version, int hideResolved, ForEachCallstackGroup func, out int totalPageSize)
        {
            totalPageSize = 0;

            if (fromDate < 0)
            {
                fromDate = kSampleBegin;
            }
            if (toDate < 0)
            {
                toDate = kSampleEnd;
            }

            string procedureName = "usp_select_recent_report_groups";

            if (seperate_version == false && specific_version == null)
            {
                procedureName = "usp_select_recent_report_groups_only";
            }

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                try
                {
                    conn.Open();

                    SqlCommand cmd1 = new SqlCommand(procedureName, conn);
                    cmd1.CommandType = CommandType.StoredProcedure;

                    SqlParameter returned = cmd1.CreateParameter();
                    returned.Direction = ParameterDirection.ReturnValue;
                    cmd1.Parameters.Add(returned);

                    cmd1.Parameters.AddWithValue("@project_uid", project_uid);
                    cmd1.Parameters.AddWithValue("@day_from", fromDate);
                    cmd1.Parameters.AddWithValue("@day_to", toDate);
                    cmd1.Parameters.AddWithValue("@pageNumber", pageNo);
                    cmd1.Parameters.AddWithValue("@cntPerPage", pageSize);
                    cmd1.Parameters.AddWithValue("@hideResolved", hideResolved);

                    if (specific_version != null)
                    {
                        cmd1.Parameters.AddWithValue("@specific_version", specific_version);
                    }

                    SqlDataReader reader = cmd1.ExecuteReader();

                    while (reader.Read())
                    {
                        int    count        = reader.GetInt32(0);
                        int    callstackUid = reader.GetInt32(1);
                        string funcname     = reader.GetString(2);
                        string version      = reader.GetString(3);

                        DateTime latestTime   = reader.GetDateTime(4); // 가장 최근에 보고를 받은 시각
                        string   relativeTime = GetRelativeTimeString(latestTime);

                        string assinged     = reader.GetString(5);
                        int    num_comments = reader.GetInt32(6);

                        func(count, callstackUid, funcname, RemoveUnwantedChars(version), latestTime, relativeTime, assinged, num_comments);
                    }

                    reader.Close();

                    double numItems = (int)returned.Value;
                    totalPageSize = (int)Math.Ceiling(numItems / pageSize);
                }
                catch (System.Exception)
                {
                    return(false);
                }
            }

            return(true);
        }