private void ProcessHomeScoringRun(StatisticItemViewModel homeScoringRun, BaseMatchViewModel matchViewModel, bool isHomeMatch)
 {
     if (homeScoringRun.HasItem && isHomeMatch)
     {
         if ((matchViewModel.Team1Ft > 0))
         {
             homeScoringRun.ItemCount++;
         }
         else
         {
             homeScoringRun.HasItem = false;
         }
     }
 }
 private void ProcessAwayScoringRun(StatisticItemViewModel awayScoringRun, BaseMatchViewModel matchViewModel, bool isHomeMatch)
 {
     if (awayScoringRun.HasItem && !isHomeMatch)
     {
         if ((matchViewModel.Team2Ft > 0))
         {
             awayScoringRun.ItemCount++;
         }
         else
         {
             awayScoringRun.HasItem = false;
         }
     }
 }
 private void ProcessAwayUnbeatenRun(StatisticItemViewModel awayUnbeatenRun, MatchResult matchResultForTeam, bool isHomeMatch)
 {
     if (awayUnbeatenRun.HasItem && !isHomeMatch)
     {
         if (matchResultForTeam == MatchResult.Win || matchResultForTeam == MatchResult.Draw)
         {
             awayUnbeatenRun.ItemCount++;
         }
         else
         {
             awayUnbeatenRun.HasItem = false;
         }
     }
 }
 private void ProcessScoringRun(StatisticItemViewModel scoringRun, BaseMatchViewModel matchViewModel, bool isHomeMatch)
 {
     if (scoringRun.HasItem)
     {
         if ((isHomeMatch && matchViewModel.Team1Ft > 0) || (!isHomeMatch && matchViewModel.Team2Ft > 0))
         {
             scoringRun.ItemCount++;
         }
         else
         {
             scoringRun.HasItem = false;
         }
     }
 }
 private void ProcessUnbeatenRun(StatisticItemViewModel unbeatenRun, MatchResult matchResultForTeam)
 {
     if (unbeatenRun.HasItem)
     {
         if (matchResultForTeam == MatchResult.Win || matchResultForTeam == MatchResult.Draw)
         {
             unbeatenRun.ItemCount++;
         }
         else
         {
             unbeatenRun.HasItem = false;
         }
     }
 }
 private void ProcessHomeWinningRun(StatisticItemViewModel homeWinningRun, MatchResult matchResultForTeam, bool isHomeMatch)
 {
     if (homeWinningRun.HasItem && isHomeMatch)
     {
         if (matchResultForTeam == MatchResult.Win)
         {
             homeWinningRun.ItemCount++;
         }
         else
         {
             homeWinningRun.HasItem = false;
         }
     }
 }
 private void ProcessWinningRun(StatisticItemViewModel winningRun, MatchResult matchResultForTeam)
 {
     if (winningRun.HasItem)
     {
         if (matchResultForTeam == MatchResult.Win)
         {
             winningRun.ItemCount++;
         }
         else
         {
             winningRun.HasItem = false;
         }
     }
 }
Esempio n. 8
0
        private async Task SendRequest()
        {
            var id = _statisticList.Count == 0
                ? 1
                : _statisticList.Count + 1;

            var statisticItem = new StatisticItemViewModel
            {
                Id  = id,
                Url = UrlTextBox.Text
            };

            _statisticList.Add(statisticItem);

            var processing = new RequestProcessing(
                new RequestHelper(),
                new StringToHttpMethodConverter(_methodsList.List)
                );

            var request = new RequestModel
            {
                DateTime = DateTime.Now,
                Url      = UrlTextBox.Text,
                Method   = RequestBodyTextBox.SelectedText,
                Headers  = RequestHeadersTextBox.Text.Split('\n'),
                Body     = RequestBodyTextBox.Text
            };

            await processing.SendRequest(request);

            var duration = (request.Response.TimeStamp - request.DateTime).TotalMilliseconds;

            statisticItem.Status   = request.Response.HttpStatusCode;
            statisticItem.Duration = $"{duration} ms";

            _statisticList[id - 1] = statisticItem;
        }
        public void SetTeamStatistics()
        {
            var teamStatistics = new List <InformationItemViewModel>();

            var selectedCampaignViewModel = SetSelectedCampaign();

            selectedCampaignViewModel.SetCampaignStages(3);

            var resultMatchViewModels = selectedCampaignViewModel.SelectedCampaignStageViewModel.ResultMatchViewModels
                                        .Where(w => w.Team1Guid == HeaderKey || w.Team2Guid == HeaderKey)
                                        .OrderByDescending(o => o.MatchDate);

            var winningRun     = new StatisticItemViewModel();
            var homeWinningRun = new StatisticItemViewModel();
            var awayWinningRun = new StatisticItemViewModel();

            var unbeatenRun     = new StatisticItemViewModel();
            var homeUnbeatenRun = new StatisticItemViewModel();
            var awayUnbeatenRun = new StatisticItemViewModel();

            var scoringRun     = new StatisticItemViewModel();
            var homeScoringRun = new StatisticItemViewModel();
            var awayScoringRun = new StatisticItemViewModel();

            int  losingRun    = 0;
            bool hasLosingRun = true;

            int  nonWinningRun    = 0;
            bool hasNonWinningRun = true;

            int  nonScoringRun    = 0;
            bool hasNonScoringRun = true;

            foreach (var matchViewModel in resultMatchViewModels)
            {
                var isHomeMatch        = matchViewModel.Team1Guid == HeaderKey;
                var matchResultForTeam = matchViewModel.GetMatchResult(HeaderKey);

                if (!winningRun.HasItem && !homeWinningRun.HasItem && !awayWinningRun.HasItem)
                {
                    break;
                }

                ProcessWinningRun(winningRun, matchResultForTeam);
                ProcessHomeWinningRun(homeWinningRun, matchResultForTeam, isHomeMatch);
                ProcessAwayWinningRun(awayWinningRun, matchResultForTeam, isHomeMatch);

                ProcessUnbeatenRun(unbeatenRun, matchResultForTeam);
                ProcessHomeUnbeatenRun(homeUnbeatenRun, matchResultForTeam, isHomeMatch);
                ProcessAwayUnbeatenRun(awayUnbeatenRun, matchResultForTeam, isHomeMatch);

                ProcessScoringRun(scoringRun, matchViewModel, isHomeMatch);
                ProcessHomeScoringRun(homeScoringRun, matchViewModel, isHomeMatch);
                ProcessAwayScoringRun(awayScoringRun, matchViewModel, isHomeMatch);

                //Losing run
                if (hasLosingRun)
                {
                    if (matchResultForTeam == MatchResult.Lose)
                    {
                        losingRun++;
                    }
                    else
                    {
                        hasLosingRun = false;
                    }
                }

                //Unbeaten run
                if (hasNonWinningRun)
                {
                    if (matchResultForTeam == MatchResult.Lose || matchResultForTeam == MatchResult.Draw)
                    {
                        nonWinningRun++;
                    }
                    else
                    {
                        hasNonWinningRun = false;
                    }
                }

                //Non-scoring run
                if (hasNonScoringRun)
                {
                    if ((isHomeMatch && matchViewModel.Team1Ft == 0) || (!isHomeMatch && matchViewModel.Team2Ft == 0))
                    {
                        nonScoringRun++;
                    }
                    else
                    {
                        hasNonScoringRun = false;
                    }
                }
            }

            var competitionName = selectedCampaignViewModel.Entity.Competition.ToViewModel(ViewDate).ToString();

            if (winningRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have won the last {0} {1} matches.", winningRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (homeWinningRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have won the last {0} {1} matches at home.", homeWinningRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (awayWinningRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have won the last {0} {1} matches away.", awayWinningRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (unbeatenRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Unbeaten for the last {0} {1} matches.", unbeatenRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (homeUnbeatenRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Unbeaten for the last {0} {1} matches at home.", homeUnbeatenRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (awayUnbeatenRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Unbeaten for the last {0} {1} matches away.", awayUnbeatenRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (scoringRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have scored in the last {0} {1} matches.", scoringRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (homeScoringRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have scored in the last {0} {1} matches at home.", homeScoringRun.ItemCount, competitionName), DisplayType.Success));
            }

            if (awayScoringRun.ItemCount > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have scored in the last {0} {1} matches away.", awayScoringRun.ItemCount, competitionName), DisplayType.Success));
            }



            if (losingRun > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Have lost the last {0} {1} matches.", losingRun, competitionName), DisplayType.Danger));
            }

            if (nonWinningRun > 1)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Haven't won for the last {0} {1} matches.", nonWinningRun, competitionName), DisplayType.Danger));
            }

            if (nonScoringRun > 2)
            {
                teamStatistics.Add(new InformationItemViewModel(string.Format("Haven't scored in the last {0} {1} matches.", nonScoringRun, competitionName), DisplayType.Danger));
            }

            TeamStatistics = teamStatistics;
        }