public void LocalizeApiException(MainServiceException ex) { if (TryLocalizeErrorCode(ex.Code, out var localizedDescription, ex.DescriptionParams)) { ex.Description = localizedDescription; } //if translation is not defined, propagate original description }
protected override void TryParseAndThrowResponseError(HttpStatusCode responseStatusCode, string responseContent) { var statusCodeNumber = (int)responseStatusCode; if (statusCodeNumber >= 400 && statusCodeNumber < 500 && TryDeserialize <ErrorContract>(responseContent, out var errorContract)) { var exception = new MainServiceException(errorContract.Code, errorContract.Description, responseStatusCode, errorContract.DescriptionParams); m_localization.LocalizeApiException(exception); throw exception; } if (responseStatusCode == HttpStatusCode.Forbidden) { var exception = new MainServiceException(MainServiceErrorCode.Forbidden, "Insufficient permissions", responseStatusCode); m_localization.LocalizeApiException(exception); throw exception; } }
protected void AddErrors(MainServiceException exception) { ModelState.AddModelError(string.Empty, exception.Description); }
public void LocalizeApiException(MainServiceException exception) { // Localization is not supported in this application, so do nothing }