예제 #1
0
        /// <summary>
        /// 비동기 방식으로 쿼리문을 실행해서, DataTable을 반환하는 Task를 빌드합니다.
        /// </summary>
        /// <param name="repository"><see cref="IAdoRepository"/></param>
        /// <param name="query">실행할 쿼리문 또는 Procedure Name</param>
        /// <param name="firstResult">첫번째 레코드 인덱스</param>
        /// <param name="maxResults">최대 레코드 갯수</param>
        /// <param name="parameters">파라미터 컬렉션</param>
        /// <returns>DataTable을 반환하는 Task</returns>
        public static Task <DataTable> ExecuteDataTableAsync(this IAdoRepository repository,
                                                             string query,
                                                             int?firstResult,
                                                             int?maxResults,
                                                             params IAdoParameter[] parameters)
        {
            query.ShouldNotBeWhiteSpace("query");

            if (IsDebugEnabled)
            {
                log.Debug("비동기 방식으로 DataTable을 로딩합니다... query=[{0}], firstResult=[{1}], maxResults=[{2}]",
                          query, firstResult, maxResults);
            }

            return(Task.Factory.StartNew(() => repository.ExecuteDataTable(query,
                                                                           firstResult ?? 0,
                                                                           maxResults ?? 0,
                                                                           parameters)));
        }