Esempio n. 1
0
        public async ValueTask <string> GetTokenAsync()
        {
            var user = _authenticatedUserProvider.GetUser();

            if (user == null)
            {
                return(string.Empty);
            }

            var token = await _cachingService.GetAsync <string>(_userTokenKeyProvider.GetKey(user.Id));

            if (string.IsNullOrEmpty(token))
            {
                token = (await _identityClient.GetTokenAsync(new IdentityTokenServiceRequest {
                    UserId = user.Id
                })
                         .ResponseAsync)?.Token;

                if (!string.IsNullOrEmpty(token))
                {
                    await _cachingService.SetAsync(_userTokenKeyProvider.GetKey(user.Id), token);
                }
            }

            return(token);
        }
Esempio n. 2
0
        public async Task <IActionResult> GetPost(long id)
        {
            var userId = GetUserIdFromClaims(User);

            var cacheKey = $"{nameof(Post)}{id}";

            var postJson = await _cachingService.GetAsync(cacheKey);

            if (!string.IsNullOrWhiteSpace(postJson))
            {
                var viewModel = Deserialize <PostViewModel>(postJson);
                return(Ok(viewModel));
            }

            var post = await _postService.GetPublicByIdAsync(id, userId ?? 0);

            if (post == null)
            {
                return(NotFound(NotFoundErrorViewModel.Create(nameof(Post), id)));
            }

            post = _processingService.ProcessPost(post, userId);

            var postViewModel = Mapper.Map <PostViewModel>(post);
            await _cachingService.AddAsync(cacheKey, Serialize(postViewModel));

            return(Ok(postViewModel));
        }
Esempio n. 3
0
        public async Task <IActionResult> GetAllGames()
        {
            var cacheKey  = $"{nameof(Game)}s";
            var gamesJson = await _cachingService.GetAsync(cacheKey);

            if (!string.IsNullOrWhiteSpace(gamesJson))
            {
                var gameViewModels = Deserialize <List <GameViewModel> >(gamesJson);

                return(Ok(gameViewModels));
            }

            var games = await _gameService.GetAllGamesAsync();

            var mappedGames = Mapper.Map <List <GameViewModel> >(games);

            await _cachingService.AddAsync(cacheKey,
                                           Serialize(mappedGames));

            return(Ok(mappedGames));
        }
Esempio n. 4
0
        public async Task <IActionResult> GetAllCharacters()
        {
            var cacheKey   = $"{nameof(Character)}s";
            var characters = await _characterService.GetAllWithGamesAsync();

            var charactersJson = await _cachingService.GetAsync(cacheKey);

            if (!string.IsNullOrWhiteSpace(charactersJson))
            {
                var cachedViewModels = Deserialize <List <GetCharacterViewModel> >(charactersJson);

                return(Ok(cachedViewModels));
            }

            var characterViewModels = Mapper.Map <List <GetCharacterListViewModel> >(characters);
            await _cachingService.AddAsync(cacheKey, Serialize(characterViewModels));

            return(Ok(characterViewModels));
        }