private async Task WriteValueToResponse(HttpResponse httpResponse, PlayerBalanceDto playerBalanceDto) { string result = JsonConvert.SerializeObject(playerBalanceDto); httpResponse.ContentType = MediaTypeNames.Application.Json; httpResponse.StatusCode = (int)HttpStatusCode.OK; await httpResponse.WriteAsync(result); }
private async Task CacheResponse(Stream stream) { StreamReader streamReader = new StreamReader(stream); string responseBody = await streamReader.ReadToEndAsync(); PlayerBalanceDto playerBalanceDto = JsonConvert.DeserializeObject <PlayerBalanceDto>(responseBody); _playerBalanceCache.InsertPlayerBalance(playerBalanceDto.PlayerIdentifier, playerBalanceDto.Balance); }
public IActionResult GetBalance(Guid playerIdentifier) { Maybe <Player> player = _playerRepository.GetByIdentifier(playerIdentifier); if (player.HasNoValue) { return(BadRequest("Player does not exist.")); } PlayerBalanceDto playerBalanceDto = new PlayerBalanceDto { PlayerIdentifier = playerIdentifier, Balance = player.Value.Wallet.GetBalance().Amount }; return(Ok(playerBalanceDto)); }
private Maybe <PlayerBalanceDto> TryGetValueFromCache(HttpContext context) { Guid playerIdentifier = Guid.Parse((string)context.Request.RouteValues[Constants.PlayerIdentifierArgumentName]); Maybe <decimal> cachedBalance = _playerBalanceCache.TryGetCached(playerIdentifier); if (cachedBalance.HasNoValue) { return(Maybe <PlayerBalanceDto> .None); } PlayerBalanceDto playerBalanceDto = new PlayerBalanceDto() { PlayerIdentifier = playerIdentifier, Balance = cachedBalance.Value }; return(Maybe <PlayerBalanceDto> .From(playerBalanceDto)); }
public async Task <PlayerBalanceDto> GetBalance(Guid id, CancellationToken cancellationToken) { var wallet = await _playerService.GetBalanceAsync(id, cancellationToken).ConfigureAwait(false); return(PlayerBalanceDto.Create(wallet)); }