public async Task <IActionResult> Clientguid(string clientguid) { long decimalNetworkId = clientguid.ConvertGuidToLong(System.Globalization.NumberStyles.Integer); var clientInfo = Manager.GetActiveClients() .FirstOrDefault(c => c.NetworkId == decimalNetworkId); if (clientInfo != null) { rankName = clientInfo.Level.ClanTag(Config); customRankName = await _metaService.GetPersistentMeta("rank", clientInfo); if (customRankName == null) { await _metaService.AddPersistentMeta("rank", "none", clientInfo); customRankName = await _metaService.GetPersistentMeta("rank", clientInfo); } if (!(customRankName.Value.Contains("none")) && !(customRankName.Value.Contains("None")) && !(customRankName.Value.Contains("NONE"))) { rankName = customRankName.Value; } var sb = new StringBuilder(); sb.AppendLine(rankName); return(Content(sb.ToString())); } return(Content("Error: Client info is null")); }
public async Task <IActionResult> Clientname(string clientname) { var clientInfo = Manager.GetActiveClients() .FirstOrDefault(c => c.Name == clientname); if (clientInfo != null) { rankName = clientInfo.Level.ClanTag(Config); customRankName = await _metaService.GetPersistentMeta("rank", clientInfo); if (customRankName == null) { await _metaService.AddPersistentMeta("rank", "none", clientInfo); customRankName = await _metaService.GetPersistentMeta("rank", clientInfo); } if (!(customRankName.Value.Contains("none")) || !(customRankName.Value.Contains("None")) || !(customRankName.Value.Contains("NONE"))) { rankName = customRankName.Value; } var sb = new StringBuilder(); sb.AppendLine(rankName); return(Content(sb.ToString())); } return(Content("Error: Client info is null")); }
public async Task AddPersistentMeta(string metaKey, string metaValue, EFClient client, EFMeta linkedMeta = null) { // this seems to happen if the client disconnects before they've had time to authenticate and be added if (client.ClientId < 1) { return; } await using var ctx = _contextFactory.CreateContext(); var existingMeta = await ctx.EFMeta .Where(_meta => _meta.Key == metaKey) .Where(_meta => _meta.ClientId == client.ClientId) .FirstOrDefaultAsync(); if (existingMeta != null) { existingMeta.Value = metaValue; existingMeta.Updated = DateTime.UtcNow; existingMeta.LinkedMetaId = linkedMeta?.MetaId; } else { ctx.EFMeta.Add(new EFMeta() { ClientId = client.ClientId, Created = DateTime.UtcNow, Key = metaKey, Value = metaValue, LinkedMetaId = linkedMeta?.MetaId }); } await ctx.SaveChangesAsync(); }