Пример #1
0
        string SendResponse(HttpListenerRequest request)
        {
            try
            {
                string[] urlParts = request.RawUrl.Split('/');
                string   lastPart = urlParts.Length > 0? urlParts[urlParts.Length - 1] : null;
                Holder   holder   = null;

                if (Leagues.Count == 1)
                {
                    holder = Leagues.First();
                }
                else if (urlParts.Length > 1)
                {
                    holder = Leagues.Find(x => x.Key == urlParts[1]);
                }

                if (request.RawUrl == "/")
                {
                    if (Leagues.Count == 1)
                    {
                        return(ReportPages.OverviewPage(holder, false, ReportPages.GameHyper, OutputFormat.Svg));
                    }
                    else
                    {
                        return(ReportPages.RootPage(Leagues));
                    }
                }
                else if (lastPart.EndsWith(".html"))
                {
                    return(HtmlResponse(request.RawUrl, lastPart, holder));
                }
                else
                {
                    return(RestResponse(request));
                }
            }
            catch (Exception ex)
            {
                return("<html><body>\n" + ex.Message + "\n<br/><br/>\n" + ex.StackTrace + "</body></html>");

                throw;
            }
        }
Пример #2
0
 private void InitializeData()
 {
     DatabaseSourceDefinitor.CreateDatabaseIfNotExist();
     DatabaseSchemaUpdater.Update();
     using (var repository = new LeagueRepository(DatabaseSourceDefinitor.ConnectionString))
     {
         Leagues = repository.GetLeagues();
     }
     if (Leagues.Length > 0)
     {
         int lastSeason = Leagues.Max(t => t.Season);
         League = Leagues.First(t => t.Season == lastSeason);
         Tour   = League.Tours[0];
         using (var repository = new GameRepository(DatabaseSourceDefinitor.ConnectionString))
         {
             GamesInTour = repository.GetGamesInTour(Tour.Id);
         }
         League.Calculate();
         TeamsStat = League.TeamStats;
     }
 }
Пример #3
0
        private void GenerateSchedule()
        {
            int lastSeasonNumber = Leagues.Length == 0 ? 0 : Leagues.Max(t => t.Season);

            new LeagueModel().GenerateSeason(lastSeasonNumber + 1);
            using (var repository = new LeagueRepository(DatabaseSourceDefinitor.ConnectionString))
            {
                Leagues = repository.GetLeagues();
            }
            if (Leagues.Length > 0)
            {
                int lastSeason = Leagues.Max(t => t.Season);
                League = Leagues.First(t => t.Season == lastSeason);
                Tour   = League.Tours[0];
                using (var repository = new GameRepository(DatabaseSourceDefinitor.ConnectionString))
                {
                    GamesInTour = repository.GetGamesInTour(Tour.Id);
                }
                League.Calculate();
                TeamsStat = League.TeamStats;
            }
        }
        public void LocalRefresh()
        {
            if (App.CurrentAthlete == null)
            {
                return;
            }

            var comparer = new LeagueComparer();
            var toJoin   = DataManager.Instance.Leagues.Where(k => !App.CurrentAthlete.Memberships.Select(m => m.LeagueId).Contains(k.Key))
                           .Select(k => k.Value).ToList();

            var toRemove = Leagues.Where(vm => vm.League != null).Select(vm => vm.League).Except(toJoin, comparer).ToList();
            var toAdd    = toJoin.Except(Leagues.Select(vm => vm.League), comparer).OrderBy(r => r.Name).Select(l => new LeagueViewModel {
                LeagueId = l.Id
            }).ToList();

            toRemove.ForEach(l => Leagues.Remove(Leagues.Single(vm => vm.League == l)));

            if (Leagues.Count == 0 && toAdd.Count == 0)
            {
                if (_empty == null)
                {
                    _empty = new LeagueViewModel {
                        EmptyMessage = "There are no available leagues to join."
                    }
                }
                ;

                if (!Leagues.Contains(_empty))
                {
                    Leagues.Add(_empty);
                }
            }

            var compare = new LeagueSortComparer();

            foreach (var lv in toAdd)
            {
                int index = 0;
                foreach (var l in Leagues.ToList())
                {
                    if (compare.Compare(lv, l) < 0)
                    {
                        break;
                    }

                    index++;
                }
                Leagues.Insert(index, lv);
            }

            if (toAdd.Count > 0 || toRemove.Count > 0)
            {
                var last = Leagues.LastOrDefault();
                foreach (var l in Leagues)
                {
                    l.IsLast = l == last;
                }
            }

            if (Leagues.Count > 0 && Leagues.Contains(_empty) && Leagues.First() != _empty)
            {
                Leagues.Remove(_empty);
            }
        }

        async public Task GetAvailableLeagues(bool forceRefresh = false)
Пример #5
0
        private void Init(string title, string noMatchString, IEnumerable <Match> matches)
        {
            ListItems.Add(new ListItem {
                Index = MainHeaders.Count, Type = 0
            });
            MainHeaders.Add(new HeaderModel {
                Title = title
            });

            int i = 0;

            if (matches.Count() == 0)
            {
                ListItems.Add(new ListItem {
                    Index = Contents.Count, Type = 3
                });
                Contents.Add(new LiveMatchModelBase {
                    Text = noMatchString
                });
            }

            while (i < matches.Count())
            {
                Match  actualMatch  = matches.ElementAt(i);
                League actualLeague = Leagues.First(l => l.Id == actualMatch.LeagueId);

                ListItems.Add(new ListItem {
                    Index = SubHeaders.Count, Type = 1
                });
                SubHeaders.Add(new HeaderModel {
                    Title = actualLeague.Name, Country = actualLeague.Country
                });

                int j = i;

                //While in the same league
                while (j < matches.Count() && matches.ElementAt(j).LeagueId == actualMatch.LeagueId)
                {
                    Team homeTeam = Teams.First(t => t.Id == actualMatch.HomeTeamId);
                    Team awayTeam = Teams.First(t => t.Id == actualMatch.AwayTeamId);

                    ListItems.Add(new ListItem {
                        Index = Contents.Count, Type = 2
                    });
                    Contents.Add(new LiveMatchModel
                    {
                        Date      = actualMatch.Date,
                        Time      = actualMatch.Time,
                        HomeTeam  = homeTeam.Name,
                        AwayTeam  = awayTeam.Name,
                        HomeScore = actualMatch.ScoreH,
                        AwayScore = actualMatch.ScoreA,
                        MatchId   = actualMatch.Id,
                        State     = actualMatch.State
                    });

                    actualMatch = matches.ElementAt(j);

                    j++;
                }

                i = j;
            }
        }