Exemplo n.º 1
0
        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;
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        private static async ValueTask <bool> IsPasswordOrAccountError(ApiException exception)
        {
            var eMess = await exception.GetContentAsAsync <dynamic>();

            return(eMess.errors.system.code == 1508);
        }