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