示例#1
0
        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"));
        }
示例#2
0
        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"));
        }
示例#3
0
        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();
        }