Ejemplo n.º 1
0
        public async Task <DsResponse> LoadData(DsRequest request)
        {
            DsResponse response = null;

            try
            {
                var httpResponse = request.Mode switch
                {
                    "Winrate" => await Http.PostAsJsonAsync("api/stats/winrate", request),
                    "Timeline" => await Http.PostAsJsonAsync("api/stats/timeline", request),
                    "MVP" => await Http.PostAsJsonAsync("api/stats/mvp", request),
                    "DPS" => await Http.PostAsJsonAsync("api/stats/dps", request),
                    "Synergy" => await Http.PostAsJsonAsync("api/stats/synergy", request),
                    "AntiSynergy" => await Http.PostAsJsonAsync("api/stats/antisynergy", request),
                    "Duration" => await Http.PostAsJsonAsync("api/stats/duration", request),
                    "Standard" => await Http.PostAsJsonAsync("api/stats/teamstandard", request),
                    _ => await Http.PostAsJsonAsync("api/stats/winrate", request)
                };
                if (httpResponse.IsSuccessStatusCode)
                {
                    return(request.Mode switch
                    {
                        "Winrate" => await httpResponse.Content.ReadFromJsonAsync <DsResponse>(),
                        "Timeline" => await httpResponse.Content.ReadFromJsonAsync <TimelineResponse>(),
                        "MVP" => await httpResponse.Content.ReadFromJsonAsync <DsResponse>(),
                        "Duration" => await httpResponse.Content.ReadFromJsonAsync <TimelineResponse>(),
                        "Standard" => await httpResponse.Content.ReadFromJsonAsync <DsResponse>(),
                        _ => await httpResponse.Content.ReadFromJsonAsync <DsResponse>()
                    });
                }
Ejemplo n.º 2
0
        public static async Task GetInfo(sc2dsstatsContext context, string timespan)
        {
            DsRequest request = new DsRequest()
            {
                Filter = new DsFilter()
            };

            request.Filter.SetOff();
            request.SetTime(timespan);
            request.Filter.GameModes = new List <int>()
            {
                (int)Gamemode.Commanders, (int)Gamemode.CommandersHeroic
            };

            var replays = ReplayFilter.Filter(context, request);

            var leaver = from r in replays
                         group r by r.Maxleaver > 89 into g
                         select new
            {
                Leaver = g.Key,
                Count  = g.Count()
            };
            var lleaver = await leaver.ToListAsync();

            int count1 = lleaver[0].Count;
            int count2 = lleaver[1].Count;
        }
Ejemplo n.º 3
0
        public async Task <string> GetLeaverInfo(string Timespan)
        {
            DsRequest request = new DsRequest()
            {
                Filter = new DsFilter()
            };

            request.Filter.SetOff();
            request.SetTime(Timespan);
            request.Filter.GameModes = new List <int>()
            {
                (int)DSData.Gamemode.Commanders, (int)DSData.Gamemode.CommandersHeroic
            };

            var replays = ReplayFilter.Filter(context, request);

            var leaver = from r in replays
                         group r by r.Maxleaver > 89 into g
                         select new
            {
                Leaver = g.Key,
                Count  = g.Count()
            };
            var lleaver = await leaver.ToListAsync();

            return(lleaver[0].Count == 0 ? "0" : (lleaver[1].Count / (double)lleaver[0].Count * 100).ToString("00.00"));
        }
Ejemplo n.º 4
0
        public static async Task <DsResponse> GetSynergy(sc2dsstatsContext context, DsRequest request)
        {
            var timestrings = DSData.Timestrings(request.Timespan);

            var results = context.DsTimeResults
                          .Include(i => i.Teammates)
                          .AsNoTracking()
                          .Where(x => x.Player == request.Player && timestrings.Contains(x.Timespan) && x.Cmdr == request.Interest);

            var synresults = await results.ToListAsync();

            int tcount   = synresults.Sum(s => s.Count);
            var response = new DsResponse()
            {
                Interest    = request.Interest,
                Count       = tcount,
                AvgDuration = (int)(synresults.Sum(s => s.Duration) / tcount),
                Items       = new List <DsResponseItem>()
            };

            foreach (var cmdr in DSData.cmdrs)
            {
                var teammates = synresults.SelectMany(s => s.Teammates).Where(x => x.Cmdr == cmdr);
                int count     = teammates.Sum(s => s.Count);
                response.Items.Add(new DsResponseItem()
                {
                    Label = cmdr,
                    Count = count / 6,
                    Wins  = teammates.Sum(s => s.Wins)
                });
            }

            return(response);
        }
Ejemplo n.º 5
0
        public static async Task <DsResponse> GetMvp(sc2dsstatsContext context, DsRequest request)
        {
            var data = await GetMVPData(context, request);

            var response = new DsResponse()
            {
                Interest = request.Interest,
                Count    = data.Select(s => s.Id).Distinct().Count(),
                Items    = new List <DsResponseItem>()
            };

            response.AvgDuration = (int)((double)data.Sum(s => s.Duration) / (double)data.Count);

            foreach (var cmdr in Enum.GetValues <DSData.Commander>())
            {
                var cmdrreps = (request.Interest == "ALL") switch
                {
                    true => data.Where(x => x.Race == (byte)cmdr),
                    false => data.Where(x => x.OppRace == (byte)cmdr)
                };

                response.Items.Add(new DsResponseItem()
                {
                    Label = cmdr.ToString(),
                    Count = cmdrreps.Count(),
                    Wins  = cmdrreps.Where(x => x.MVP == true).Count()
                });
            }

            return(response);
        }
Ejemplo n.º 6
0
        public static async Task <double> GetQuits(sc2dsstatsContext context, DsRequest request)
        {
            var replays = GetCountReplays(context, request);



            var quits = from r in replays
                        group r by r.Winner into g
                        select new
            {
                Winner = g.Key,
                Count  = g.Count()
            };
            var lquits = await quits.ToListAsync();

            if (lquits.Any())
            {
                double sum = (double)lquits.Sum(s => s.Count);
                if (sum > 0)
                {
                    return(Math.Round(lquits.Where(x => x.Winner == -1).Count() * 100 / sum, 2));
                }
                else
                {
                    return(0);
                }
            }
            else
            {
                return(0);
            }
        }
Ejemplo n.º 7
0
        public async Task <ActionResult <DsResponse> > GetAntiSynergy(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            DsResponse response;

            if (request.Filter == null || request.Filter.isDefault)
            {
                string hash = request.GenHash();
                if (!memoryCache.TryGetValue(hash, out response))
                {
                    response = await StatsService.GetAntiSynergy(context, request);

                    memoryCache.Set(hash, response, CacheService.BuildCacheOptions);
                }
                else
                {
                    logger.LogInformation("antisynergy from cache");
                }
            }
            else
            {
                response = await StatsService.GetAntiSynergy(context, request);
            }

            await SetLeaverQuit(request, response);

            sw.Stop();
            logger.LogInformation($"Get AntiSynergy in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 8
0
        public static DsResponse GetMvp(DsRequest request, List <CmdrStats> cmdrstats)
        {
            var stats = GetTimeStats(request, cmdrstats);

            if (request.Interest != "ALL")
            {
                stats = stats.Where(x => x.RACE == (byte)DSData.GetCommander(request.Interest)).ToList();
            }

            List <DsResponseItem> items = request.Interest == "ALL"
                ? stats.GroupBy(g => g.RACE).Select(s => new DsResponseItem
            {
                Label = ((Commander)s.Key).ToString(),
                Count = s.Sum(c => c.count),
                Wins  = s.Sum(c => c.mvp),
            }).ToList()
                : stats.GroupBy(g => g.OPPRACE).Select(s => new DsResponseItem
            {
                Label = ((Commander)s.Key).ToString(),
                Count = s.Sum(c => c.count),
                Wins  = s.Sum(c => c.mvp),
            }).ToList();
            int tcount = items.Sum(s => s.Count);

            return(new DsResponse()
            {
                Interest = request.Interest,
                Count = request.Player ? tcount : tcount / 6,
                AvgDuration = tcount == 0 ? 0 : (int)(stats.Sum(s => s.duration) / tcount),
                Items = items
            });
        }
Ejemplo n.º 9
0
        public DsResponse CommonTrn(DsRequest dsReq)
        {
            DsResponse dsRes = new DsResponse(dsReq);

            switch (dsReq.CommandType)
            {
            case "C":
                dsRes.objResult = IBatisNet2Helper.Instance.Insert(dsReq.CommandId, dsReq.htParam);
                break;

            case "U":
                dsRes.objResult = IBatisNet2Helper.Instance.Update(dsReq.CommandId, dsReq.htParam);
                break;

            case "D":
                dsRes.objResult = IBatisNet2Helper.Instance.Delete(dsReq.CommandId, dsReq.htParam);
                break;

            case "SP":
                ;
                break;

            case null:
            case "":
            case "R":
            default:
                dsRes.DtResult = IBatisNet2Helper.Instance.QueryForDataTable(dsReq.CommandId, dsReq.htParam);
                break;
            }

            return(dsRes);
        }
Ejemplo n.º 10
0
        private void button2_Click(object sender, EventArgs e)
        {
            DsResponse dsRes = null;
            DsRequest  dsReq = new DsRequest();
            Hashtable  ht    = new Hashtable();

            try
            {
                dsReq = new DsRequest();
                ht    = new Hashtable();

                dsReq.CommandId   = "POS320401.SetUserInfo";
                dsReq.CommandType = "C";
                dsReq.htParam     = ht;

                using (TS.Biz.BizPOS320401 objNTx = new TS.Biz.BizPOS320401())
                {
                    dsRes = objNTx.SetTestTransaction(dsReq);
                }

                dataGridView1.DataSource = dsRes.DtResult;
            }
            catch (Exception ex)
            {
            }
            finally
            {
                dsRes = null;
                dsReq = null;
                ht    = null;
            }
        }
Ejemplo n.º 11
0
 public static bool AddChartDataSet(ConfigBase config, DsRequest request, DsResponse response)
 {
     return(request.ChartType switch
     {
         "Bar" => AddBarDataSet(config as BarConfig, request, response, false),
         "Line" => AddLineDataSet(config as LineConfig, request, response as TimelineResponse, true),
         "Radar" => AddRadarDataSet(config as RadarConfig, request, response, true),
         "Pie" => AddPieDataSet(config as PieConfig, request, response),
         _ => false
     });
Ejemplo n.º 12
0
 private async Task SetLeaverQuit(DsRequest request, DsResponse response)
 {
     // response.CountResponse = await GetCountResponse(request);
     response.CountResponse = new DsCountResponse()
     {
         FilteredCount = response.Count,
         Leaver        = await GetLeaver(request),
         Quits         = await GetQuits(request)
     };
 }
Ejemplo n.º 13
0
        public DataTable GetCommonNTx(DsRequest dsR)
        {
            DataTable dtResult = null;

            using (DacPOS320401NTx objNTx = new DacPOS320401NTx())
            {
                dtResult = objNTx.GetCommonNTx(dsR);
            }

            return(dtResult);
        }
Ejemplo n.º 14
0
        public async Task <ActionResult <DsResponse> > GetCrosstable(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            var response = StatsService.GetCrosstable(request, await GetCmdrStats(request.Player));

            sw.Stop();
            logger.LogInformation($"Get Crosstable in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 15
0
        public async Task <ActionResult <TimelineResponse> > GetDuration(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            var response = await DurationService.GetDuration(context, request);

            sw.Stop();
            logger.LogInformation($"Get Timeline in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 16
0
        public async Task <ActionResult <DsResponse> > GetAntiSynergy(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            // var response = await WinrateService.GetWinrate(request, context);
            var response = await SynergyService.GetAntiSynergy(context, request);

            sw.Stop();
            logger.LogInformation($"Get AntiSynergy in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 17
0
        public async Task LoadData(DsRequest Request, bool resetChart = true)
        {
            await semaphoreSlim.WaitAsync();

            try
            {
                if (isLoading == false)
                {
                    isLoading = true;
                    await InvokeAsync(() => StateHasChanged());
                }
                response = await dataService.LoadData(Request);

                if (response != null)
                {
                    Request.Responses.Add(response);
                    isDataAvailable = true;
                    if (resetChart)
                    {
                        SetChartData();
                        if (Request.doReloadSelected && Request.CmdrsSelected != null)
                        {
                            var cmdrsSelected = Request.CmdrsSelected.Where(x => x.Selected && x.Name != Request.Interest);
                            if (cmdrsSelected.Any())
                            {
                                foreach (var cmdr in cmdrsSelected)
                                {
                                    var cmdrrequest  = new DsRequest(Request.Mode, Request.Timespan, Request.Player, cmdr.Name);
                                    var cmdrresponse = await dataService.LoadData(cmdrrequest);

                                    ChartService.AddChartDataSet(_config, cmdrrequest, cmdrresponse);
                                    chartComponent.Update();
                                }
                            }
                        }
                    }
                }
                else
                {
                    Info = "Failed loading data :(";
                }
            }
            catch (Exception e)
            {
                logger.LogError($"failed loading data: {e.Message}");
            }
            finally
            {
                semaphoreSlim.Release();
            }
            isLoading = false;
            await InvokeAsync(() => StateHasChanged());
        }
Ejemplo n.º 18
0
        public DsResponse CommonTrn(DsRequest dsReq)
        {
            DsResponse dsRes = null;


            using (DacCommon objTrn = new DacCommon())
            {
                dsRes = objTrn.CommonTrn(dsReq);
            }

            return(dsRes);
        }
Ejemplo n.º 19
0
        public async Task <ActionResult <DsResponse> > GetCrosstable(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            // var response = await CrossTableService.GetCrossTableData(request, context);
            var response = await CrossTableService.GetCrosstableFromTimeResults(context, request);

            sw.Stop();
            logger.LogInformation($"Get Crosstable in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 20
0
        private async Task <double> GetQuits(DsRequest request)
        {
            double leaver;
            string memKey = "quits" + request.StartTime.ToString("yyyyMMdd") + request.EndTime.ToString("yyyyMMdd");

            if (!memoryCache.TryGetValue(memKey, out leaver))
            {
                leaver = await StatsService.GetQuits(context, request);

                memoryCache.Set(memKey, leaver, CacheService.BuildCacheOptions);
            }
            return(leaver);
        }
Ejemplo n.º 21
0
 public static List <CmdrStats> GetTimeStats(DsRequest request, List <CmdrStats> stats)
 {
     return(request.Timespan switch
     {
         "This Month" => stats.Where(x => x.year == DateTime.Today.Year && x.month == DateTime.Today.Month).ToList(),
         "Last Month" => stats.Where(x => x.year == DateTime.Today.AddMonths(-1).Year&& x.month == DateTime.Today.AddMonths(-1).Month).ToList(),
         "This Year" => stats.Where(x => x.year == DateTime.Today.Year).ToList(),
         "Last Year" => stats.Where(x => x.year == DateTime.Today.AddYears(-1).Year).ToList(),
         "Last Two Years" => stats.Where(x => x.year == DateTime.Today.Year || x.year == DateTime.Today.AddYears(-1).Year).ToList(),
         "ALL" => stats,
         "Patch 2.60" => GetTimeStats(new DateTime(2020, 07, 28, 5, 23, 0), DateTime.Today.AddDays(1), stats),
         "Custom" => GetTimeStats(request.StartTime, request.EndTime, stats),
         _ => stats
     });
Ejemplo n.º 22
0
        public static DsResponse GetCrosstable(DsRequest request, List <CmdrStats> cmdrstats)
        {
            var stats = GetTimeStats(request, cmdrstats);

            List <CmdrStats> laststats = new List <CmdrStats>(stats);

            if (stats.Any())
            {
                var last = stats.OrderByDescending(o => o.year).ThenByDescending(o => o.month).Last();
                laststats.RemoveAll(x => x.year == last.year && x.month == last.month);
                if (DateTime.Today.Day < 16)
                {
                    if (last.month > 1)
                    {
                        laststats.RemoveAll(x => x.year == last.year && x.month == last.month - 1);
                    }
                    else
                    {
                        laststats.RemoveAll(x => x.year == last.year - 1 && x.month == 12);
                    }
                }
            }

            List <DsResponseItem> lastitems = new List <DsResponseItem>();

            if (laststats.Any())
            {
                lastitems = laststats.GroupBy(g => new { cmdr = g.RACE, opp = g.OPPRACE }).Select(s => new DsResponseItem()
                {
                    Label = $"{(DSData.Commander)s.Key.cmdr} vs {(DSData.Commander)s.Key.opp}",
                    Count = s.Sum(s => s.count),
                    Wins  = s.Sum(s => s.wins),
                }).ToList();
            }

            var items = stats.GroupBy(g => new { cmdr = g.RACE, opp = g.OPPRACE }).Select(s => new CrosstableResponseItem()
            {
                Label    = $"{(DSData.Commander)s.Key.cmdr} vs {(DSData.Commander)s.Key.opp}",
                Count    = s.Sum(s => s.count),
                Wins     = s.Sum(s => s.wins),
                OldCount = lastitems.FirstOrDefault(f => f.Label == $"{(DSData.Commander)s.Key.cmdr} vs {(DSData.Commander)s.Key.opp}") != null ? lastitems.FirstOrDefault(f => f.Label == $"{(DSData.Commander)s.Key.cmdr} vs {(DSData.Commander)s.Key.opp}").Count : 0,
                OldWins  = lastitems.FirstOrDefault(f => f.Label == $"{(DSData.Commander)s.Key.cmdr} vs {(DSData.Commander)s.Key.opp}") != null ? lastitems.FirstOrDefault(f => f.Label == $"{(DSData.Commander)s.Key.cmdr} vs {(DSData.Commander)s.Key.opp}").Wins : 0,
            }).OrderBy(o => o.Label).ToList();

            return(new CrosstableResponse()
            {
                Interest = "CrossTable",
                Items = items
            });
        }
Ejemplo n.º 23
0
 protected override Task OnInitializedAsync()
 {
     cmdrList   = DSData.cmdrs.ToList();
     playerList = new List <string>()
     {
         "Global", "Uploaders"
     };
     cmdrList.Insert(0, "ALL");
     if (Request == null)
     {
         Request = new DsRequest("Winrate", "This Year", playerStats);
     }
     LoadData(Request);
     return(base.OnInitializedAsync());
 }
Ejemplo n.º 24
0
        private async Task <double> GetLeaver(DsRequest request)
        {
            double leaver;

            //string memKey = "leaver" + request.StartTime.ToString("yyyyMMdd") + request.EndTime.ToString("yyyyMMdd");
            //if (!memoryCache.TryGetValue(memKey, out leaver))
            //{
            //    leaver = await StatsService.GetLeaver(context, request);
            //    memoryCache.Set(memKey, leaver, CacheService.RankingCacheOptions);
            //}

            leaver = await StatsService.GetLeaver(context, request);

            return(leaver);
        }
Ejemplo n.º 25
0
        public static IQueryable <Dsreplay> Filter(sc2dsstatsContext context, DsRequest request)
        {
            if (request.Filter == null || request.Filter.isDefault)
            {
                var dreplays = DefaultFilter(context);
                dreplays = dreplays.Where(x => x.Gametime >= request.StartTime);
                if (request.EndTime != DateTime.Today)
                {
                    dreplays = dreplays.Where(x => x.Gametime <= request.EndTime);
                }

                return(dreplays);
            }

            return(GetFilteredReplays(context, request.Filter, request.StartTime, request.EndTime));
        }
Ejemplo n.º 26
0
        private static async Task <List <DbStatsResult> > GetData(DsRequest request, sc2dsstatsContext context)
        {
            var replays = ReplayFilter.DefaultFilter(context);

            var reps = request.Player switch
            {
                false => from r in replays
                from p in r.Dsplayers
                where r.Gametime >= request.StartTime && r.Gametime <= request.EndTime
                select new DbStatsResult()
                {
                    Id       = r.Id,
                    Win      = p.Win,
                    Race     = p.Race,
                    OppRace  = p.Opprace,
                    GameTime = r.Gametime
                },
                true => from r in replays
                from p in r.Dsplayers
                where r.Gametime >= request.StartTime && r.Gametime <= request.EndTime &&
                p.isPlayer
                select new DbStatsResult()
                {
                    Id       = r.Id,
                    Win      = p.Win,
                    Race     = p.Race,
                    OppRace  = p.Opprace,
                    GameTime = r.Gametime
                }
            };

            return(await reps.ToListAsync());

            //var dbresults = context.DbStatsResults
            // .AsNoTracking()
            // .Where(x =>
            //       x.GameTime >= request.StartTime
            //    && x.GameTime <= request.EndTime
            //);

            //if (request.Player)
            //{
            //    dbresults = dbresults.Where(x => x.Player == true);
            //}

            // return await dbresults.ToListAsync();
        }
Ejemplo n.º 27
0
        public async Task <ActionResult <DsResponse> > GetWinrate(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            DsResponse response;

            if (request.Filter == null || request.Filter.isDefault)
            {
                response = await WinrateService.GetWinrateFromTimeResults(context, request);
            }
            else
            {
                response = await WinrateService.GetWinrate(context, request);
            }
            sw.Stop();
            logger.LogInformation($"Get Winrate in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 28
0
        public DsResponse SetCommonTx(DsRequest dsR)
        {
            DsResponse dsRes = null;

            try
            {
                dsRes.dtResult  = IBatisNet2Helper.Instance.QueryForDataTable("POS320401.GetUserInfo", dsR.htParam);
                dsRes.objResult = dsRes.dtResult.Rows.Count;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }

            return(dsRes);
        }
Ejemplo n.º 29
0
        private async Task <DsCountResponse> GetCountResponse(DsRequest request)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            string          hash = request.GenHash();
            DsCountResponse response;
            string          memKey = "countresponse" + hash;

            if (!memoryCache.TryGetValue(memKey, out response))
            {
                response = await StatsService.GetCount(context, request);

                memoryCache.Set(memKey, response, CacheService.RankingCacheOptions);
                cacheService.AddHashKey(memKey);
            }
            sw.Stop();
            logger.LogInformation($"Get count response in {sw.ElapsedMilliseconds} ms");
            return(response);
        }
Ejemplo n.º 30
0
        public async Task <DsResponse> LoadData(DsRequest request)
        {
            DsResponse response;

            if (request.Filter == null || request.Filter.isDefault)
            {
                response = request.Mode switch
                {
                    "Winrate" => StatsService.GetWinrate(request, await GetStats(request.Player)),
                    "Timeline" => StatsService.GetTimeline(new TimelineRequest(request.Mode, request.Timespan, request.Player, request.Interest, request.Versus)
                                                           , await GetStats(request.Player)),
                    "MVP" => request.Player ? await StatsService.GetCustomMvp(request, context) : StatsService.GetMvp(request, await GetStats(request.Player)),
                    "DPS" => StatsService.GetDps(request, await GetStats(request.Player)),
                    "Synergy" => await StatsService.GetSynergy(context, request),
                    "AntiSynergy" => await StatsService.GetAntiSynergy(context, request),
                    "Duration" => await StatsService.GetDuration(context, request),
                    "Standard" => await StatsService.GetStandardTeamWinrate(request, context),
                    _ => StatsService.GetWinrate(request, await GetStats(request.Player))
                };
            }
            else
            {
                response = request.Mode switch
                {
                    "Winrate" => await StatsService.GetCustomWinrate(request, context),
                    "Timeline" => await StatsService.GetCustomTimeline(context, new TimelineRequest(request.Mode, request.Timespan, request.Player, request.Interest, request.Versus)),
                    "MVP" => await StatsService.GetCustomMvp(request, context),
                    "DPS" => await StatsService.GetCustomDps(request, context),
                    "Synergy" => await StatsService.GetSynergy(context, request),
                    "AntiSynergy" => await StatsService.GetAntiSynergy(context, request),
                    "Duration" => await StatsService.GetDuration(context, request),
                    "Standard" => await StatsService.GetStandardTeamWinrate(request, context),
                    _ => await StatsService.GetCustomWinrate(request, context),
                };
            }
            response.CountResponse = await GetCountResponse(request);

            return(response);
        }