Esempio 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>()
                    });
                }
Esempio n. 2
0
        public static ConfigBase GetChartConfig(DsResponse response)
        {
            var config = GetBarConfig();

            config.Options.Title.Text = response.Interest;

            List <double> pointData = new List <double>();

            foreach (var item in response.Items)
            {
                config.Data.Labels.Add(item.Label);
                pointData.Add(item.Count == 0 ? 0 : Math.Round((double)item.Wins * 100.0 / (double)item.Count, 2));
            }

            var pointDataset = new BarDataset <double>(pointData)
            {
                Label       = "global",
                BorderColor = DSData.CMDRcolor[response.Interest],
                BorderWidth = 2,
            };

            config.Data.Datasets.Add(pointDataset);

            return(config);
        }
Esempio n. 3
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);
        }
Esempio n. 4
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;
            }
        }
Esempio n. 5
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);
        }
Esempio n. 6
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);
        }
Esempio n. 7
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)
     };
 }
Esempio n. 8
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
     });
Esempio n. 9
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());
        }
Esempio n. 10
0
        public DsResponse CommonTrn(DsRequest dsReq)
        {
            DsResponse dsRes = null;


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

            return(dsRes);
        }
Esempio n. 11
0
        public static async Task <DsResponse> GetDpsFromTimeResults(sc2dsstatsContext context, DsRequest request)
        {
            var timestrings = DSData.Timestrings(request.Timespan);

            var results = context.DsTimeResults.AsNoTracking().Where(x => x.Player == request.Player && timestrings.Contains(x.Timespan));

            if (request.Interest == "ALL")
            {
                results = results.Where(x => x.Opp == String.Empty);
            }
            else
            {
                results = results.Where(x => x.Cmdr == request.Interest);
            }

            var dpsresults = await results.ToListAsync();

            int count = dpsresults.Sum(s => s.Count);

            var response = new DsResponse()
            {
                Interest    = request.Interest,
                Count       = request.Player ? count : count / 6,
                AvgDuration = (int)(dpsresults.Sum(s => s.Duration) / count),
                Items       = new List <DsResponseItem>()
            };

            foreach (var cmdr in DSData.cmdrs)
            {
                var cmdrresults = (request.Interest == "ALL") switch
                {
                    true => dpsresults.Where(x => x.Cmdr == cmdr).ToList(),
                    false => dpsresults.Where(x => x.Opp == cmdr).ToList(),
                };

                var army  = cmdrresults.Sum(s => s.Army);
                var kills = cmdrresults.Sum(s => s.Kills);
                var dpv   = army / kills;

                response.Items.Add(new DsResponseItem()
                {
                    Label = cmdr,
                    Count = (int)(dpv * 10000),
                    Wins  = 10000
                });
            }

            return(response);
        }
Esempio n. 12
0
        public static async Task <DsResponse> GetWinrateFromTimeResults(sc2dsstatsContext context, DsRequest request)
        {
            var timestrings = DSData.Timestrings(request.Timespan);

            var results = context.DsTimeResults.AsNoTracking().Where(x => x.Player == request.Player && timestrings.Contains(x.Timespan));

            if (request.Interest == "ALL")
            {
                results = results.Where(x => x.Opp == String.Empty);
            }
            else
            {
                results = results.Where(x => x.Cmdr == request.Interest);
            }

            var timeresults = await results.ToListAsync();

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

            foreach (var cmdr in DSData.cmdrs)
            {
                var cmdrresults = (request.Interest == "ALL") switch
                {
                    true => timeresults.Where(x => x.Cmdr == cmdr).ToList(),
                    false => timeresults.Where(x => x.Opp == cmdr).ToList(),
                };
                int count = cmdrresults.Sum(s => s.Count);
                response.Items.Add(new DsResponseItem()
                {
                    Label = cmdr,
                    Count = count,
                    Wins  = cmdrresults.Sum(s => s.Wins)
                });
            }

            return(response);
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
        public DsResponse SetTestTransaction(DsRequest dsReq)
        {
            try
            {
                DsResponse dsRes = null;
                Hashtable  ht    = null;


                IBatisNet2Helper.Instance.BeginTransaction();

                using (DacCommon objTx = new DacCommon())
                {
                    ht = new Hashtable();
                    ht.Add("USER_ID", "Test11");
                    dsReq.htParam = ht;

                    dsRes = objTx.CommonTrn(dsReq);

                    dsReq.htParam["USER_ID"] = "Test12";
                    dsRes = objTx.CommonTrn(dsReq);

                    dsReq.htParam["USER_ID"] = "Test11";
                    dsRes = objTx.CommonTrn(dsReq);

                    ;
                }

                IBatisNet2Helper.Instance.CommitTransaction();

                return(dsRes);
            }
            catch (Exception ex)
            {
                IBatisNet2Helper.Instance.RollBackTransaction();
                throw ex;
            }
        }