Пример #1
0
        private void GetTypeOptions()
        {
            using (BeaujeauxEntities database = new BeaujeauxEntities())
            {
                var requestTypes = database.RequestTypes.OrderBy(a => a.Rank);
                List <SelectListItem> options = new List <SelectListItem>();

                int id = SelectedRequestId == null ? 0 : int.Parse(SelectedRequestId);

                options.Add(new SelectListItem()
                {
                    Text     = "Select an Option",
                    Value    = "0",
                    Selected = id == 0,
                });

                foreach (var type in requestTypes)
                {
                    options.Add(new SelectListItem()
                    {
                        Text     = type.Display,
                        Value    = type.Id.ToString(),
                        Selected = id == type.Id,
                    });
                }
                RequestTypeOptions = options;
            }
        }
        public SeasonStatsModel(SeasonStatsParameters seasonParameters)
        {
            _seasonStatsParameters = seasonParameters;
            _database = new BeaujeauxEntities();

            // League
            LeagueOptions  = _database.Leagues.ToList();
            SelectedLeague = LeagueOptions.Where(s => s.Id == _seasonStatsParameters.leagueId).FirstOrDefault();
            SelectedLeague = SelectedLeague ?? LeagueOptions.FirstOrDefault();

            // All Seasons for the League
            var _seasons = _database.Seasons
                           .Where(s => s.LeagueId == SelectedLeague.Id);

            SelectedLeagueEra = seasonParameters.leagueEra;

            SetSeasonNumberOptions();
            SetSeasonTypeOptions(_seasons);
            SetSelectedSeasonType(_seasonStatsParameters.seasonTypeId);
            SetSelectedSeason(_seasonStatsParameters.seasonNumber);
            SetTeamOptions(_seasons);
            SetSelectedTeam(_seasonStatsParameters.teamId);
            SetPageNumberInfo(seasonParameters.pageNumber);

            SetStatsForPage();
            TotalPages = GetTotalPageCount();
            BoundCurrentPage();
        }
Пример #3
0
        public static void AddRequestTypes()
        {
            BeaujeauxEntities database = new BeaujeauxEntities();

            if (database.RequestTypes.Any())
            {
                return;
            }

            database.RequestTypes.Add(new RequestType()
            {
                Name    = "Bug",
                Display = "Something's Broken",
                Rank    = 1
            });
            database.RequestTypes.Add(new RequestType()
            {
                Name    = "Data",
                Display = "Data is Wrong",
                Rank    = 2
            });
            database.RequestTypes.Add(new RequestType()
            {
                Name    = "Feature",
                Display = "Feature Request",
                Rank    = 3
            });
            database.RequestTypes.Add(new RequestType()
            {
                Name    = "General",
                Display = "Something else",
                Rank    = 4
            });
            database.SaveChanges();
        }
Пример #4
0
        public static void MergeIntoExistingSkater(string oldName, string newName)
        {
            using (var db = new BeaujeauxEntities())
            {
                var skaters = db.Skaters.Where(a => a.Name == newName);
                if (skaters.Count() != 1)
                {
                    throw new Exception("too many skaters");
                }
                var newSkater = skaters.First();

                skaters = db.Skaters.Where(a => a.Name == oldName);
                if (skaters.Count() != 1)
                {
                    throw new Exception("too many skaters");
                }
                var oldSkater = skaters.First();

                foreach (var season in oldSkater.SkaterSeasonStats)
                {
                    season.SkaterId = newSkater.Id;
                }

                db.Skaters.Remove(oldSkater);
                db.SaveChanges();
            }
        }
Пример #5
0
        public static void RemoveTeamIdForTotal()
        {
            using (var db = new BeaujeauxEntities())
            {
                var stats = db.SkaterSeasonStats
                            .GroupBy(
                    x => new { x.SkaterId, x.SeasonId },
                    (a, b) => b.Where(c => b.Count() > 1)
                    ).Where(a => a.Count() > 1).ToList();

                Console.WriteLine(stats.Count() + " people");
                Console.WriteLine();

                int z = 0;
                List <SkaterSeasonStat> allStats = new List <SkaterSeasonStat>();
                foreach (var season in stats)
                {
                    foreach (var statLine in season)
                    {
                        var stat = db.SkaterSeasonStats.First(a => a.Id == statLine.Id);
                        if (!stat.IsSubtotal)
                        {
                            stat.TeamId = null;
                            allStats.Add(stat);
                            break;
                        }
                    }
                    Console.Write(++z + " ");
                }

                db.SaveChanges();
            }
        }
Пример #6
0
        public static void SplitCareerSameName(string name, int startCareer2)
        {
            using (var db = new BeaujeauxEntities())
            {
                var skaters = db.Skaters.Where(a => a.Name == name);
                if (skaters.Count() != 1)
                {
                    throw new Exception("too many skaters");
                }
                var skater = skaters.First();

                skater.Name = name + " I";

                var secondSkater = new DataEF.Skater();
                secondSkater.Name = name + " II";
                db.Skaters.Add(secondSkater);

                db.SaveChanges();

                secondSkater = db.Skaters.Where(a => a.Name == name + " II").First();

                foreach (var season in skater.SkaterSeasonStats.Where(a => a.Season.Number >= startCareer2))
                {
                    season.SkaterId = secondSkater.Id;
                }

                db.SaveChanges();
            }
        }
Пример #7
0
 public void SaveDataToDB()
 {
     using (Database = new BeaujeauxEntities())
     {
         DeleteSeasonIfExists();
         PrepareClassData();
         AddStatsToTeams();
         RemoveStatsWithNoPlaying();
     }
 }
Пример #8
0
 public void GetSubmissions()
 {
     using (BeaujeauxEntities database = new BeaujeauxEntities())
     {
         Submissions = database.RequestSubmissions
                       .Where(a => a.DateComplete == null)
                       .OrderByDescending(t => t.DateSubmitted)
                       .Include(t => t.RequestType)
                       .ToList();
     }
 }
Пример #9
0
        public GoaliePlayerStatsModel(BeaujeauxEntities database, Goalie goalie, int leagueId) : base(database, leagueId)
        {
            Goalie = goalie;

            var seasonTypes = Goalie.GoalieSeasonStats
                              .Select(sss => sss.Season.SeasonType)
                              .Distinct()
                              .ToList();

            var statGroups = new List <GoalieStatGroup>();

            foreach (var type in seasonTypes)
            {
                var stats = database.GoalieSeasonStats
                            .Where(sss => sss.Season.SeasonTypeId == type.Id)
                            .Where(sss => sss.Season.LeagueId == leagueId)
                            .Where(sss => sss.GoalieId == Goalie.Id)
                            .Where(sss => !sss.IsSubtotal)
                            .OrderByDescending(sss => sss.Season.Number)
                            .ToList();

                GoalieSeasonStat totals = new GoalieSeasonStat()
                {
                    GP  = stats.Sum(a => a.GP),
                    W   = stats.Sum(a => a.W),
                    L   = stats.Sum(a => a.L),
                    OTL = stats.Sum(a => a.OTL),
                    MP  = stats.Sum(a => a.MP),
                    PIM = stats.Sum(a => a.PIM),
                    SO  = stats.Sum(a => a.SO),
                    A   = stats.Sum(a => a.A),
                    EG  = stats.Sum(a => a.EG),
                    GA  = stats.Sum(a => a.GA),
                    SA  = stats.Sum(a => a.SA),
                    PSS = stats.Sum(a => a.PSS),
                    PSA = stats.Sum(a => a.PSA),
                    ST  = stats.Sum(a => a.ST),
                    BG  = stats.Sum(a => a.BG),
                    S1  = stats.Sum(a => a.S1),
                    S2  = stats.Sum(a => a.S2),
                    S3  = stats.Sum(a => a.S3),
                };

                statGroups.Add(new GoalieStatGroup()
                {
                    SeasonType = type,
                    Stats      = stats,
                    TotalStats = totals,
                });
            }
            GroupedStats = statGroups;
        }
Пример #10
0
        public static void RemoveExtraPlayers()
        {
            using (BeaujeauxEntities database = new BeaujeauxEntities())
            {
                var extraSkaters = database.Skaters
                                   .Where(a => !a.SkaterSeasonStats.Any());
                database.Skaters.RemoveRange(extraSkaters);

                var extraGoalies = database.Goalies
                                   .Where(a => !a.GoalieSeasonStats.Any());
                database.Goalies.RemoveRange(extraGoalies);

                database.SaveChanges();
            }
        }
Пример #11
0
        public static void ChangeSkaterName(string oldName, string newName)
        {
            using (var db = new BeaujeauxEntities())
            {
                var skaters = db.Skaters.Where(a => a.Name == oldName);
                if (skaters.Count() != 1)
                {
                    throw new Exception("too many skaters");
                }
                var oldSkater = skaters.First();

                oldSkater.Name = newName;

                db.SaveChanges();
            }
        }
Пример #12
0
 public static void AddLeagues()
 {
     using (BeaujeauxEntities database = new BeaujeauxEntities())
     {
         if (!database.Leagues.Any())
         {
             database.Leagues.Add(new League()
             {
                 Acronym = "SHL", Name = "Simulated Hockey League"
             });
             database.Leagues.Add(new League()
             {
                 Acronym = "SMJHL", Name = "Simulated Major Junior Hockey League"
             });
             database.SaveChanges();
         }
     }
 }
Пример #13
0
 public static void AddSeasonTypes()
 {
     using (BeaujeauxEntities database = new BeaujeauxEntities())
     {
         if (!database.SeasonTypes.Any())
         {
             database.SeasonTypes.Add(new SeasonType()
             {
                 Name = "Regular Season"
             });
             database.SeasonTypes.Add(new SeasonType()
             {
                 Name = "Playoffs"
             });
             database.SaveChanges();
         }
     }
 }
Пример #14
0
        public ActionResult Skater(int?li, int?pi)
        {
            if (pi == null)
            {
                RedirectToAction("Search");
            }

            var    _database = new BeaujeauxEntities();
            Skater skater    = _database.Skaters.Where(s => s.Id == pi).FirstOrDefault();

            if (skater == null)
            {
                throw new Exception("no player found");
            }

            int leagueId = GetLeagueId(li);

            return(View(new SkaterPlayerStatsModel(_database, skater, leagueId)));
        }
        public PlayerSearchModel(string searchTerm)
        {
            if (searchTerm == null)
            {
                searchTerm = "";
            }

            if (searchTerm.Length < 3)
            {
                AlertMessage  = "Search Term needs to be at least 3 characters long. You tryna ruin my database, mofo? It probably doesn't really matter, but come on, brah.";
                SearchTerm    = "";
                SearchResults = new List <SearchResult>();
            }
            else
            {
                SearchTerm = searchTerm.Trim().ToLower();
                using (var database = new BeaujeauxEntities())
                {
                    var results = new List <SearchResult>();
                    results.AddRange(database.SkaterSeasonStats
                                     //.Where(sss => sss.Season.LeagueId == League.Id) // Replace with a domain object instead
                                     .Where(sss => sss.Skater.Name.Contains(SearchTerm))
                                     .Select(sss => new SearchResult {
                        PlayerName = sss.Skater.Name, PlayerId = sss.SkaterId, IsGoalie = false
                    })
                                     .Distinct()
                                     );

                    results.AddRange(database.GoalieSeasonStats
                                     //.Where(gss => gss.Season.LeagueId == League.Id)
                                     .Where(gss => gss.Goalie.Name.Contains(SearchTerm))
                                     .Select(gss => new SearchResult {
                        PlayerName = gss.Goalie.Name, PlayerId = gss.GoalieId, IsGoalie = true
                    })
                                     .Distinct()
                                     );

                    SearchResults = results
                                    .OrderBy(p => p.PlayerName)
                                    .ToList();
                }
            }
        }
Пример #16
0
        public ActionResult Goalie(int?li, int?pi)
        {
            if (pi == null)
            {
                RedirectToAction("Search");
            }

            var    _database = new BeaujeauxEntities();
            Goalie goalie    = _database.Goalies.Where(g => g.Id == pi).FirstOrDefault();

            if (goalie == null)
            {
                throw new Exception("no player found");
            }

            int leagueId = GetLeagueId(li);

            return(View(new GoaliePlayerStatsModel(_database, goalie, leagueId)));
        }
Пример #17
0
        public void AddToDB()
        {
            bool safeToSave = true;

            if (Description == null && Description.Length < 10)
            {
                ErrorMessage = "Description must be at least 20 characters to help me fully understand what you need.";
                safeToSave   = false;
            }

            using (BeaujeauxEntities database = new BeaujeauxEntities())
            {
                var         id          = int.Parse(SelectedRequestId);
                RequestType requestType = database.RequestTypes.Where(s => s.Id == id).FirstOrDefault();
                if (requestType == null)
                {
                    safeToSave   = false;
                    ErrorMessage = "Please select a request type.";
                }

                if (safeToSave)
                {
                    database.RequestSubmissions.Add(new RequestSubmission()
                    {
                        RequestTypeId   = requestType.Id,
                        Description     = Description,
                        DateSubmitted   = DateTime.Now,
                        CompleteComment = null,
                        DateComplete    = null,
                    });
                    database.SaveChanges();
                }
            }

            Submitted = safeToSave;
        }
Пример #18
0
        public SkaterPlayerStatsModel(BeaujeauxEntities database, Skater skater, int leagueId) : base(database, leagueId)
        {
            Skater = skater;

            var seasonTypes = Skater.SkaterSeasonStats
                              .Select(sss => sss.Season.SeasonType)
                              .Distinct()
                              .OrderBy(st => st.Id)
                              .ToList();

            var statGroups = new List <SkaterStatGroup>();

            foreach (var type in seasonTypes)
            {
                var stats = database.SkaterSeasonStats
                            .Where(sss => sss.Season.SeasonTypeId == type.Id)
                            .Where(sss => sss.Season.LeagueId == leagueId)
                            .Where(sss => sss.SkaterId == Skater.Id)
                            .Where(sss => !sss.IsSubtotal)
                            .OrderByDescending(sss => sss.Season.Number)
                            .ToList();

                SkaterSeasonStat totals = new SkaterSeasonStat()
                {
                    GP   = stats.Sum(a => a.GP),
                    G    = stats.Sum(a => a.G),
                    A    = stats.Sum(a => a.A),
                    P    = stats.Sum(a => a.P),
                    PLMI = stats.Sum(a => a.PLMI),
                    SHT  = stats.Sum(a => a.SHT),
                    SB   = stats.Sum(a => a.SB),
                    MP   = stats.Sum(a => a.MP),
                    PIM  = stats.Sum(a => a.PIM),
                    PM5  = stats.Sum(a => a.PM5),
                    HIT  = stats.Sum(a => a.HIT),
                    HTT  = stats.Sum(a => a.HTT),
                    PPG  = stats.Sum(a => a.PPG),
                    PPA  = stats.Sum(a => a.PPA),
                    PPP  = stats.Sum(a => a.PPP),
                    PPS  = stats.Sum(a => a.PPS),
                    PPM  = stats.Sum(a => a.PPM),
                    PKG  = stats.Sum(a => a.PKG),
                    PKA  = stats.Sum(a => a.PKA),
                    PKP  = stats.Sum(a => a.PKP),
                    PKS  = stats.Sum(a => a.PKS),
                    PKM  = stats.Sum(a => a.PKM),
                    GW   = stats.Sum(a => a.GW),
                    GT   = stats.Sum(a => a.GT),
                    EG   = stats.Sum(a => a.EG),
                    HT   = stats.Sum(a => a.HT),
                    FOW  = stats.Sum(a => a.FOW),
                    FOT  = stats.Sum(a => a.FOT),
                    PSG  = stats.Sum(a => a.PSG),
                    PSS  = stats.Sum(a => a.PSS),
                    FW   = stats.Sum(a => a.FW),
                    FL   = stats.Sum(a => a.FL),
                    FT   = stats.Sum(a => a.FT),
                    S1   = stats.Sum(a => a.S1),
                    S2   = stats.Sum(a => a.S2),
                    S3   = stats.Sum(a => a.S3),
                };

                statGroups.Add(new SkaterStatGroup()
                {
                    SeasonType = type,
                    Stats      = stats,
                    TotalStats = totals,
                });
            }
            GroupedStats = statGroups;
        }
Пример #19
0
 public PlayerStatsModel(BeaujeauxEntities database, int leagueId)
 {
     LeagueOptions  = database.Leagues.ToList();
     SelectedLeague = LeagueOptions.Where(s => s.Id == leagueId).FirstOrDefault();
     SelectedLeague = SelectedLeague ?? LeagueOptions.FirstOrDefault();
 }
Пример #20
0
 public TeamData(BeaujeauxEntities database, SthsData.Team source, DataEF.Team db)
 {
     Database   = database;
     DataSource = source;
     DataDB     = db;
 }
Пример #21
0
        public static void AddFranchises()
        {
            BeaujeauxEntities database = new BeaujeauxEntities();

            database.Franchises.RemoveRange(database.Franchises);

            string[] latestTeamsShl =
            {
                "Buffalo Stampede",
                "Calgary Dragons",
                "Edmonton Blizzard",
                "Hamilton Steelhawks",
                "Manhattan Rage",
                "Toronto North Stars",
                "West Kendall Platoon",
                "Winnipeg Jets",
                "Los Angeles Panthers",
                "Minnesota Chiefs",
                "Texas Renegades",
                "New England Wolfpack",
                "Seattle Riot",
                "San Francisco Pride"
            };

            string[] latestTeamsSmjhl =
            {
                "Detroit Falcons",
                "Montreal Militia",
                "Prince George Firebirds",
                "Kelowna Knights",
                "St Louis Scarecrows",
                "Vancouver Whalers",
                "Colorado Mammoths",
                "Halifax Raiders",
            };

            League shl   = database.Leagues.Where(a => a.Acronym == "SHL").First();
            League smjhl = database.Leagues.Where(a => a.Acronym == "SMJHL").First();

            foreach (var teamName in latestTeamsShl)
            {
                var team = database.Teams.Where(t => t.Name == teamName).FirstOrDefault();
                if (team == null)
                {
                    continue;
                }

                Franchise franchise = new Franchise()
                {
                    LatestTeam = team,
                    League     = shl,
                };

                team.Franchise = franchise;

                if (team.Acronym == "NEW")
                {
                    var hydras = database.Teams.Where(t => t.Name == "Hartford Hydras").FirstOrDefault();
                    franchise.Teams.Add(hydras);
                }
                if (team.Acronym == "SEA")
                {
                    var nightmare = database.Teams.Where(t => t.Name == "Vancouver Nightmare").FirstOrDefault();
                    var lvkings   = database.Teams.Where(t => t.Name == "Las Vegas Kings").FirstOrDefault();
                    var wolves    = database.Teams.Where(t => t.Name == "Vancouver Ice Wolves").FirstOrDefault();
                    franchise.Teams.Add(nightmare);
                    franchise.Teams.Add(lvkings);
                    franchise.Teams.Add(wolves);
                }
                if (team.Acronym == "SFP")
                {
                    var port = database.Teams.Where(t => t.Name == "Portland Admirals").FirstOrDefault();
                    franchise.Teams.Add(port);
                }
                if (team.Acronym == "EDM")
                {
                    var port = database.Teams.Where(t => t.Name == "Edmonton Comets").FirstOrDefault();
                    franchise.Teams.Add(port);
                }

                database.Franchises.Add(franchise);
            }

            foreach (var teamName in latestTeamsSmjhl)
            {
                var team = database.Teams.Where(t => t.Name == teamName).FirstOrDefault();
                if (team == null)
                {
                    continue;
                }

                Franchise franchise = new Franchise()
                {
                    LatestTeam = team,
                    League     = smjhl,
                };

                team.Franchise = franchise;

                if (team.Acronym == "MTL")
                {
                    var impact = database.Teams.Where(t => t.Name == "Montreal Impact").FirstOrDefault();
                    franchise.Teams.Add(impact);
                }

                if (team.Acronym == "PGF")
                {
                    var regina = database.Teams.Where(t => t.Name == "Regina Force").FirstOrDefault();
                    franchise.Teams.Add(regina);
                }

                database.Franchises.Add(franchise);
            }

            database.SaveChanges();
        }