public async Task <GetPlayerByIdResponse> GetPlayerById(string id) { var playerId = _dataAgent.GetStringValue("playerId"); if (!String.IsNullOrEmpty(playerId)) { if (id == playerId) { var playerById = _dataAgent.GetStringValue("playerById"); var result = JsonConvert.DeserializeObject <GetPlayerByIdResponse>(playerById); return(result); } else { var request = new GetPlayerByIdRequest(id); var result = await _playerActor.Ask <GetPlayerByIdResponse>(request); var playerById = JsonConvert.SerializeObject(result); _dataAgent.SetStringValue("playerId", id); _dataAgent.SetStringValue("playerById", playerById); return(result); } } else { var request = new GetPlayerByIdRequest(id); var result = await _playerActor.Ask <GetPlayerByIdResponse>(request); var playerById = JsonConvert.SerializeObject(result); _dataAgent.SetStringValue("playerId", id); _dataAgent.SetStringValue("playerById", playerById); return(result); } }
private void Handle(GetPlayerByIdRequest request) { try { var config = new AutoMapper.MapperConfiguration(cfg => { cfg.CreateMap <Player, GetPlayerItem>(); }); var mapper = config.CreateMapper(); var player = mapper.Map <GetPlayerItem>(_playerRepo.Get(request.Id)); var response = new GetPlayerByIdResponse(player); Sender.Tell(response); _logger.Info("Get Player by Id: {0}", request.Id); } catch (Exception ex) { _logger.Error("Could't get Player by id: {0} : {1}", request.Id, ex.Message); throw; } }
public Task <IActionResult> GetPlayerById([FromRoute] GetPlayerByIdRequest request) { return(this.HandleRequest <GetPlayerByIdRequest, GetPlayerByIdResponse>(request)); }