Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
 public ImageReceiverServer(IServerAction serverAction)
 {
     _serverAction = serverAction;
 }