예제 #1
0
        /// <summary>
        /// <see cref="IAdoRepository.ExecuteScalarByProcedure"/> 를 비동기 방식으로 수행하는 <see cref="Task{TResult}"/>를 빌드합니다.
        /// </summary>
        /// <param name="repository"><see cref="IAdoRepository"/> 인스턴스</param>
        /// <param name="spName">실행할 Procedure Name</param>
        /// <param name="parameters">파라미터 정보</param>
        /// <returns>Scalar 값을 결과값으로 가진 Task</returns>
        public static Task <object> ExecuteScalarTaskByProcedureAsync(this IAdoRepository repository, string spName,
                                                                      params IAdoParameter[] parameters)
        {
            repository.ShouldNotBeNull("repository");
            spName.ShouldNotBeWhiteSpace("spName");

            if (IsDebugEnabled)
            {
                log.Debug("비동기 방식으로 ExecuteScalarByProcedure()을 수행합니다... spName=[{0}], parameters=[{1}]",
                          spName, parameters.CollectionToString());
            }

            return(Task.Factory.StartNew(() => repository.ExecuteScalarByProcedure(spName, parameters)));
        }