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;
}