コード例 #1
0
        /// <summary>
        /// 비동기 방식으로 Procedure를 실행해서, PagingDataTable을 반환하는 Task를 빌드합니다.
        /// </summary>
        /// <param name="repository"><see cref="IAdoRepository"/></param>
        /// <param name="spName">실행할 Procedure Name</param>
        /// <param name="pageIndex">Page index (0부터 시작합니다.)</param>
        /// <param name="pageSize">Page당 Item 수 (보통 10개)</param>
        /// <param name="parameters">파라미터 컬렉션</param>
        /// <returns>DataTable을 반환하는 Task</returns>
        public static Task <PagingDataTable> ExecutePagingDataTableByProcedureAsync(this IAdoRepository repository,
                                                                                    string spName,
                                                                                    int?pageIndex,
                                                                                    int?pageSize,
                                                                                    params IAdoParameter[] parameters)
        {
            repository.ShouldNotBeNull("repository");
            spName.ShouldNotBeWhiteSpace("spName");

            if (IsDebugEnabled)
            {
                log.Debug("비동기 방식으로 Procedure를 수행하여, PagingDataTable을 얻습니다... spName=[{0}], pageIndex=[{1}], pageSize=[{2}]",
                          spName, pageIndex, pageSize);
            }

            return(Task.Factory.StartNew(() => repository.ExecutePagingDataTableByProcedure(spName,
                                                                                            pageIndex,
                                                                                            pageSize,
                                                                                            parameters)));
        }