public async Task JoinParty(string partyName, string playerObj) { var player = CompressionHelper.Decompress <PlayerModel>(playerObj); var ladder = await _ladderService.GetLadderForPlayer(player.Character.League, player.Character.Name); if (ladder == null) { ladder = await _ladderService.GetLadderForLeague(player.Character.League); } player.LadderInfo = ladder; // set initial id of player player.ConnectionID = Context.ConnectionId; //update ConnectionId:Partyname index await AddToIndex(partyName); // look for party var party = await _cache.GetAsync <PartyModel>($"party:{partyName}"); if (party == null) { party = new PartyModel() { Name = partyName, Players = new List <PlayerModel> { player } }; await _cache.SetAsync <PartyModel>($"party:{partyName}", party); await Clients.Caller.SendAsync("EnteredParty", CompressionHelper.Compress(party), CompressionHelper.Compress(player)); } else { var oldPlayer = party.Players.FirstOrDefault(x => x.Character.Name == player.Character.Name || x.ConnectionID == player.ConnectionID); if (oldPlayer == null) { party.Players.Insert(0, player); } else { var index = party.Players.IndexOf(oldPlayer); party.Players[index] = player; } await _cache.SetAsync <PartyModel>($"party:{partyName}", party); await Clients.Caller.SendAsync("EnteredParty", CompressionHelper.Compress(party), CompressionHelper.Compress(player)); } await Groups.AddToGroupAsync(Context.ConnectionId, partyName); await Clients.OthersInGroup(partyName).SendAsync("PlayerJoined", CompressionHelper.Compress(player)); await Clients.Group(partyName).SendAsync("PlayerUpdated", CompressionHelper.Compress(player)); }
public async Task <IActionResult> All(string league, bool full = false) { var list = await _ladderService.GetLadderForLeague(league); return(Ok(new { Ladder = list })); }
public async Task <string> GetLadderForLeague(string league) { var ladder = await _ladderService.GetLadderForLeague(league); return(CompressionHelper.Compress(ladder)); }
public IActionResult All(string league, bool full = false) { var list = _ladderService.GetLadderForLeague(league, full); return(Ok(new { Ladder = list })); }