コード例 #1
0
        public ApiResponse GetStatsTotalCounts([FromQuery] int?top)
        {
            try
            {
                if (!top.HasValue || top.Value < 0)
                {
                    top = 20;
                }

                int tick = Environment.TickCount;

                var payload = (from t in StatsDB.GetTotalCountsTopN(top.Value)
                               select new
                {
                    Endpoint = GetEndpointDescription(t.EndpointId),
                    t.RoutineFullName,
                    t.ExecutionCount,
                    TotalDurationSec = (decimal)t.TotalDuration / 1000.0M,
                    t.TotalRows
                }).ToList();

                tick = Environment.TickCount - tick;

                return(ApiResponse.Payload(new
                {
                    Payload = payload,
                    FetchTimeInMs = tick
                }));
            }
            catch (Exception ex)
            {
                return(ApiResponse.Exception(ex));
            }
        }
コード例 #2
0
 public BanTracking(DiscordGuilds g)
 {
     Console.WriteLine("Creating bantracking without any previous data.");
     _guilds       = g;
     statsdb       = new StatsDB();
     BanTreeAccess = new SemaphoreSlim(1, 1);
     bds           = new BanDataStructure();
 }
コード例 #3
0
 public BanTracking(DiscordGuilds g, BanDataStructure savedDS)
 {
     _guilds       = g;
     statsdb       = new StatsDB();
     BanTreeAccess = new SemaphoreSlim(1, 1);
     bds           = savedDS;
     Console.WriteLine($"Loaded {bds.BanDict.Count} ban dict elements from the last backup");
 }
コード例 #4
0
 public IActionResult GetStatsEntryCount()
 {
     try
     {
         return(Ok(StatsDB.GetTotalUniqueExecutionsCount()));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.ToString()));
     }
 }
コード例 #5
0
        public async Task IsBanned(string uplayNickname)
        {
            (bool matched, bool ban) = Bot.Instance.bt.QueryBanByNick(uplayNickname);

            if (!matched)
            {
                await ReplyAsync($"Tracker podezrelych hracu nezna nikoho s nickem/uplay identifikatorem {uplayNickname}. Jestli ucet existuje, muzete ho trackovat prikazem !sus {uplayNickname}");
            }
            else
            {
                if (ban)
                {
                    BanData bd         = Bot.Instance.bt.QueryBanData(uplayNickname);
                    string  statsDBURL = StatsDB.BuildURL(uplayNickname, bd.UplayId);
                    await ReplyAsync($"Hrac {uplayNickname} ma skutecne od Ubisoftu ban. Ostuda! Vice najdete zde: {statsDBURL} .");
                }
                else
                {
                    await ReplyAsync($"Uzivatel s uplay ID {uplayNickname} je nami trackovany, ale ban zatim nema.");
                }
            }
        }
コード例 #6
0
        public string BuildBanReport(BanData newlyBannedUser)
        {
            string statsDBUrl = StatsDB.BuildURL(newlyBannedUser.OriginalUplayName, newlyBannedUser.UplayId);

            return($"Podezrely {newlyBannedUser.OriginalUplayName} dostal ban. Clen Discordu <@{newlyBannedUser.ReporterId}> mel pravdu! Cheateruv profil na StatsDB: {statsDBUrl} .");
        }