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; } }
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; } }
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)
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; } }