Browser.mod.DB.LoadCallstackList C# (CSharp) Метод

LoadCallstackList() публичный статический Метод

public static LoadCallstackList ( int project_uid, int pageNo, int pageSize, int fromDate, int toDate, bool seperate_version, string specific_version, int hideResolved, ForEachCallstackGroup func, int &totalPageSize ) : bool
project_uid int
pageNo int
pageSize int
fromDate int
toDate int
seperate_version bool
specific_version string
hideResolved int
func ForEachCallstackGroup
totalPageSize int
Результат bool
        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;
        }