private async Task HandleApiException <T>(ApiException apiEx, T response, [CallerMemberName] string methodName = "") where T : EmptyResponseDto { try { _logger.Error(apiEx, $"{methodName}: Api error occurred. Checking if we can get an google response error"); var error = await apiEx.GetContentAsAsync <GoogleResponseErrorModel>(); if (error is null) { response.Message = apiEx.Message; _logger.Error($"{methodName}: Couldnt get the google.. ApiMsg = {response.Message}"); } else { string msg = GetGoogleError(error); response.Message = msg; _logger.Error($"{methodName}: Got the google error = {msg}"); } } catch (Exception) { response.Message = apiEx.Message; } _telemetryService.TrackError(apiEx); }
public TransactionBroadcastingWebApiException(ApiException inner) : base(inner) { var response = inner.GetContentAsAsync <BlockchainErrorResponse <TransactionBroadcastingError> >() .ConfigureAwait(false) .GetAwaiter() .GetResult(); ErrorCode = response.Code; ErrorMessage = response.Message; }
internal static async Task <AuthException> MapAsync(ApiException exception) { var errorResponse = await exception.GetContentAsAsync <ErrorResponse>().ConfigureAwait(false); var error = new ErrorResult { ErrorCode = Map(errorResponse.ErrorCode) }; return(new AuthException(error, exception)); }
private async Task <Exception> WrapException(ApiException exception) { if (exception.StatusCode == System.Net.HttpStatusCode.BadRequest) { var receivedBody = await exception.GetContentAsAsync <Exception>(); return(new ValidationException($"业务校验失败,{receivedBody.Message} ({From})", exception)); } else { _logger.LogWarning(exception, "Call Dms After Sales API failed"); return(new ApplicationException($"内部调用失败,{exception.Message} ({exception.StatusCode}) ({From})", exception)); } }
public static ResponseErrorInfo ToResponseErrorInfo(this ApiException apiException) { ResponseErrorInfo errorInfo = null; try { errorInfo = apiException.GetContentAsAsync <ResponseErrorInfo>().Result; } catch (JsonException) { } catch (AggregateException e) when(e.InnerException is JsonException) { } return(errorInfo); }
public static async Task <string> GetMessage(this ApiException apiEx) { var message = apiEx.Message; if (!apiEx.HasContent) { return(message); } try { var result = await apiEx.GetContentAsAsync <Result>(); if (result.IsFailure) { message = result.Error; } } catch (Exception) { // ignored } return(message); }
private static async ValueTask <bool> IsPasswordOrAccountError(ApiException exception) { var eMess = await exception.GetContentAsAsync <dynamic>(); return(eMess.errors.system.code == 1508); }