/// <summary> /// Command를 수행하고, 결과를 XML 문자열로 반환합니다. /// </summary> /// <param name="repository">Repository</param> /// <param name="requestItem">요청 정보</param> /// <returns>Data 처리 결과의 XML 문자열</returns> public override string Execute(IAdoRepository repository, RequestItem requestItem) { Repository = repository; var method = requestItem.Method; var requestParameters = requestItem.Parameters; if (IsDebugEnabled) { log.Debug("{0}를 수행합니다. method=[{1}], requestParameters=[{2}]", GetType().FullName, method, requestParameters.CollectionToString()); } var query = repository.QueryProvider.GetQuery(method).AsText(method); string result; using (var cmd = repository.GetCommand(query, true)) { var scalar = repository.ExecuteScalar(cmd, GetParameters(requestParameters)); result = JsonTool.SerializeAsText(scalar); } if (IsDebugEnabled) { log.Debug("{0}를 완료했습니다. method=[{1}], requestParameters=[{2}]", GetType().FullName, method, requestParameters.CollectionToString()); } return(result); }
//! ====================================================================================== /// <summary> /// <see cref="IAdoRepository.ExecuteScalar(string,IAdoParameter[])"/> 를 /// 비동기 방식으로 수행하는 <see cref="Task{TResult}"/>를 빌드합니다. /// </summary> /// <param name="repository"><see cref="IAdoRepository"/> 인스턴스</param> /// <param name="query">실행할 쿼리 문</param> /// <param name="parameters">파라미터 정보</param> /// <returns>Scalar 값을 결과값으로 가진 Task</returns> public static Task <object> ExecuteScalarAsync(this IAdoRepository repository, string query, params IAdoParameter[] parameters) { repository.ShouldNotBeNull("repository"); query.ShouldNotBeWhiteSpace("query"); if (IsDebugEnabled) { log.Debug("비동기 방식으로 ExecuteScalar()을 수행합니다... query=[{0}], parameters=[{1}]", query, parameters.CollectionToString()); } return(Task.Factory.StartNew(() => repository.ExecuteScalar(query, parameters))); }
/// <summary> /// Command를 수행하고, 결과를 XML 문자열로 반환합니다. /// </summary> /// <param name="repository">Repository</param> /// <param name="requestItem">요청 정보</param> /// <returns>Data 처리 결과의 XML 문자열</returns> public override string Execute(IAdoRepository repository, RequestItem requestItem) { Repository = repository; var method = requestItem.Method; var requestParameters = requestItem.Parameters; if(IsDebugEnabled) log.Debug("{0}를 수행합니다. method=[{1}], requestParameters=[{2}]", GetType().FullName, method, requestParameters.CollectionToString()); var query = repository.QueryProvider.GetQuery(method).AsText(method); string result; using(var cmd = repository.GetCommand(query, true)) { var scalar = repository.ExecuteScalar(cmd, GetParameters(requestParameters)); result = JsonTool.SerializeAsText(scalar); } if(IsDebugEnabled) log.Debug("{0}를 완료했습니다. method=[{1}], requestParameters=[{2}]", GetType().FullName, method, requestParameters.CollectionToString()); return result; }