Esempio n. 1
0
        public ActionResult HandleException(Exception exception, ControllerBase controller)
        {
            _logger.LogWarning(exception, "A generic Exception was thrown! Containing message: {ExceptionMessage}", exception.Message);
            var errorResponse = new ErrorResponseDto(_textService.Error_ServerError);
            var dataForClient = new DataForClient <IResponse>(errorResponse, new FixResponseDto[0]);

            return(controller.Ok(dataForClient));
        }
Esempio n. 2
0
        public ActionResult HandleRequestException(RequestException exception, ControllerBase controller)
        {
            _logger.LogWarning(exception, "A Request Exception was thrown! Containing message: {ExceptionMessage}", exception.HumanMessage);
            var errorResponse = new ErrorResponseDto(exception.HumanMessage);
            var dataForClient = new DataForClient <IResponse>(errorResponse, exception.Fixes);

            return(controller.Ok(dataForClient));
        }
Esempio n. 3
0
        // Transforms IRequest to RequestBase
        public async Task <DataForClient <IResponse> > Process(IRequest request, InputContext inputContext)
        {
            // Log the request
            LogRequest(_logger, request);

            // Set the language
            _languageService.SetLanguage(inputContext.Language);

            // Try to get info about the user
            var userInfo = _authenticationService.TryAuthenticate(inputContext.AccessToken);

            // Check if authentication needs to be fixed
            var fixes = new List <FixResponseDto>();

            if (userInfo.Item1 == null && inputContext.AccessToken != null)
            {
                fixes.Add(new FixResponseDto(_textService.Error_IdentityValidationFailed, ErrorFix.Logout));
            }

            // Check if the client uses the right version
            if (inputContext.AppVersion != ClientConstants.AppVersionString)
            {
                fixes.Add(new FixResponseDto(_textService.Error_RefreshBrowser, ErrorFix.WrongVersion));
                throw new RequestException(_textService.Error_OldVersionOfAppUsed, fixes.ToArray());
            }

            // Create request context
            var requestContext = new RequestContext(userInfo.Item1, userInfo.Item2, inputContext.RequestId, inputContext.Language, inputContext.IpAddress);

            // Get the server action
            IServerAction action = _serverActionResolver.Resolve(request);

            // Execute the server action
            var response = await action.ExecuteActionAsync(request, requestContext);

            // Wrap the response
            var dataForClient = new DataForClient <IResponse>(response, fixes.ToArray());

            return(dataForClient);
        }