/** 콜스택 목록 가져오기 * * @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; }
/** 콜스택 목록 가져오기 * * @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); }