public bool TryHandle()

in src/Covi/Services/Http/ExceptionsHandling/ErrorResponseHandler.cs [34:75]


        public bool TryHandle(
            Exception operationException,
            out Exception generatedException,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            generatedException = null;
            ResponseError payload = null;
            switch (operationException)
            {
                case OperationCanceledException operationCanceledException:
                    generatedException = !cancellationToken.IsCancellationRequested
                        ? (Exception) new ConnectionTimeoutException()
                        : operationCanceledException;

                    return true;
                case ConnectivityException connectivityException:
                    generatedException = connectivityException;
                    return true;
                case HttpOperationException httpException:
                {
                    var context = _httpExceptionContextRetriever.RetrieveContext(httpException);
                    if (TryHandleHttpExceptionByStatusCode(context, out generatedException))
                    {
                        return true;
                    }

                    payload = context.ResponseError;
                    if (payload != null)
                    {
                        if (TryHandleBusinessExceptionByPayload(payload, out generatedException))
                        {
                            return true;
                        }
                    }

                    break;
                }
            }

            generatedException = new UnknownException(operationException, payload);
            return true;
        }