// 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); }
public ImageReceiverServer(IServerAction serverAction) { _serverAction = serverAction; }