///// <summary>执行Seaweedfs请求 ///// </summary> //public async Task<T> ExecuteAsync<T>(Connection connection, ISeaweedfsRequest<T> request) where T : SeaweedfsResponse, new() //{ // var builder = request.CreateBuilder(); // IRestRequest restRequest = builder.BuildRequest(); // var response = await connection.ExecuteAsync(restRequest); // var result = new T() // { // IsSuccessful = response.IsSuccessful, // StatusCode = response.StatusCode, // ErrorException = response.ErrorException, // ErrorMessage = response.ErrorMessage // }; // if (response.IsSuccessful) // { // try // { // var t = _jsonSerializer.Deserialize<T>(response.Content); // t.IsSuccessful = result.IsSuccessful; // t.StatusCode = result.StatusCode; // return t; // } // catch (Exception ex) // { // _logger.LogError(ex, "执行Seaweedfs请求,对返回值反序列化失败,{0}", ex.Message); // result.IsSuccessful = false; // result.ErrorException = ex; // result.ErrorMessage = ex.Message; // } // } // return result; //} /// <summary>执行器执行 /// </summary> public async Task <T> ExecuteAsync <T>(ISeaweedfsRequest <T> request) where T : SeaweedfsResponse, new() { try { var firstDelegate = _restPipelineBuilder.Build(); var context = _restExecuteContextFactory.CreateContext <T>(request); await firstDelegate(context); if (context.IsError) { var error = context.Errors.FirstOrDefault(); throw new Exception(error.Message); } if (context.Response != null) { return(context.Response as T); } return(null); } catch (Exception ex) { _logger.LogError($"支付ExecuteAsync出错,{ex.Message}"); throw ex; } }
/// <summary>创建上下文 /// </summary> public RestExecuteContext CreateContext <T>(ISeaweedfsRequest <T> request) where T : SeaweedfsResponse, new() { var context = new RestExecuteContext() { Request = request, ServerType = request.ServerType, AssignServer = request.AssignServer, Response = new T() }; return(context); }