Beispiel #1
0
        public static int[] GetIdByType(string type)
        {
            int val = 0;

            switch (type)
            {
            case "Roster":
                val = 1;
                break;

            case "Watch":
                val = 2;
                break;
            }


            using (var db = new EspnEntities())
            {
                var playres = db.Players.Where(p => p.Type.HasValue && p.Type.Value == val);
                if (playres.Any())
                {
                    return(playres.Select(p => p.ID).ToArray());
                }
                else
                {
                    return(new int[0]);
                }
            }
        }
Beispiel #2
0
        public static int GetNextGamePk()
        {
            int pk;

            Mutex.WaitOne();
            try
            {
                if (_nextGamePk == -1)
                {
                    using (var db = new EspnEntities())
                    {
                        _nextGamePk = db.Games.Max(g => g.Pk) + 1;
                        pk          = _nextGamePk;
                    }
                }
                else
                {
                    pk = ++_nextGamePk;
                }
            }
            catch (Exception)
            {
                pk = -1;
            }
            finally
            {
                Mutex.ReleaseMutex();
            }
            return(pk);
        }
Beispiel #3
0
 public static string[] GetTeamList()
 {
     using (var db = new EspnEntities())
     {
         IQueryable <string> teams = db.Players.Select(p => p.Team).Where(t => t != null && !t.Contains("null"))
                                     .Distinct().OrderBy(t => t);
         return(teams.ToArray());
     }
 }
Beispiel #4
0
 public static void CreateTeams()
 {
     using (var db = new EspnEntities())
     {
         foreach (var team in db.LeagueTeams)
         {
             Teams.Add(team.Name, team.Abbreviation);
         }
     }
 }
Beispiel #5
0
 private static PlayerInfo CachePlayer(string playerName)
 {
     using (var db = new EspnEntities())
     {
         var player = db.Players.First(p => p.Name.Equals(playerName));
         var games  = db.Games.Where(g => g.PlayerId == player.ID).ToArray();
         return(new PlayerInfo(player, games));
     }
     //if (!CachePlayers.ContainsKey(playerName))
     //{
     //    var player = new PlayerInfo(playerName);
     //    if (player.Games != null)
     //        CachePlayers.Add(playerName, new PlayerInfo(playerName));
     //}
     //return CachePlayers[playerName];
 }
Beispiel #6
0
 public static void CreatePlayersList(LogDelegate log = null)
 {
     log?.Invoke("Init Players...");
     using (var db = new EspnEntities())
     {
         var players = db.Players.ToArray();
         foreach (var player in players)
         {
             if (!Players.ContainsKey(player.Name))
             {
                 Players.Add(player.Name, player.ID);
             }
         }
         var currentGames = db.Games.AsEnumerable().Where(g => g.GameDate > new DateTime(Utils.GetCurrentYear(), 10, 1)).ToList();
         //MainForm.PlayerRater = currentGames.Any() ? new Rater(players, currentGames) : null;
         MainForm.PlayerRater = new Rater(players, currentGames);
     }
 }
Beispiel #7
0
        public static void UpdatePlayers(LogDelegate log = null)
        {
            var players     = MainForm.PlayerRater.Players;
            var startTime   = DateTime.Now;
            int currentYear = Utils.GetCurrentYear();

            log?.Invoke("Start Crate Rater...");
            if (!Utils.Ping(@"http://www.espn.com"))
            {
                Console.WriteLine("No Ping");
                log?.Invoke("No Internet, Can't Update");
                return;
            }

            double counter = 0;
            IEnumerable <PlayerInfo> playerInfos = players.Select(p =>
            {
                log?.Invoke($"{p.Name} - {Math.Round(100 * ++counter / players.Count())} %");
                Console.WriteLine(Math.Round(100 * counter / players.Count()) + "%");
                return(new PlayerInfo(p.Name, p.ID, currentYear + 1));
            });

            foreach (PlayerInfo playerInfo in playerInfos)
            {
                log?.Invoke("Update - " + playerInfo.PlayerName);
                UpdatePlayer(playerInfo);
                //if (playerInfo?.Games?.Count != 0)
                //{
                //    UpdatePlayer(playerInfo);
                //}
                //else
                //{
                //    Console.WriteLine($"{playerInfo.PlayerName} - No Games");
                //}
            }
            Console.WriteLine(Environment.NewLine + "Done In " + (DateTime.Now - startTime).TotalSeconds + " Seconds");

            using (var db = new EspnEntities())
            {
                List <Game> games = new List <Game>(db.Games.AsEnumerable().Where(g => g.GameDate > new DateTime(currentYear, 10, 1)));
                MainForm.PlayerRater.Games = new List <Game>(games);
            }
        }
Beispiel #8
0
        public static void AddNewPlayer(string name, int id = -1)
        {
            try
            {
                Console.WriteLine("Add New Player - " + name);
                if (id == -1)
                {
                    id = PlayerInfo.GetPlayerId(name);
                }
                if (id == -1)
                {
                    id = int.Parse(Microsoft.VisualBasic.Interaction.InputBox("Can't Found Player, Please Insert Id", "Add New Player", "Default", -1, -1));
                }

                using (var db = new EspnEntities())
                {
                    var names = db.Players.Select(p => p.Name);
                    var ids   = db.Players.Select(p => p.ID);

                    if (names.Contains(name) || ids.Contains(id))
                    {
                        Console.WriteLine("Player Already Exist");
                        return;
                    }

                    int gamePk     = db.Games.Max(g => g.Pk);
                    var playerInfo = new PlayerInfo(name, id);

                    Player player = new Player(playerInfo);
                    Game[] games  = playerInfo.Games.Select(g => new Game(g, ++gamePk, player.ID)).ToArray();

                    db.Players.Add(player);
                    db.Games.AddRange(games);
                    db.SaveChanges();

                    Console.WriteLine("Done");
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Beispiel #9
0
        private static void UpdatePlayer(PlayerInfo playerInfo)
        {
            try
            {
                using (var db = new EspnEntities())
                {
                    Player player = db.Players.FirstOrDefault(p => p.ID == playerInfo.Id);
                    if (player == null)
                    {
                        return;
                    }


                    player.Age  = playerInfo.Age;
                    player.Misc = playerInfo.Misc;
                    player.Team = playerInfo.Team;


                    Game lastGame = db.Games.Where(g => g.PlayerId == player.ID).OrderByDescending(g => g.GameDate).FirstOrDefault();

                    if (lastGame != null)
                    {
                        playerInfo.Games.FirstOrDefault(g => g.GameDate == lastGame.GameDate)
                        ?.UpdateGame(lastGame);     //Update Last Game In DB
                        db.Games.AddOrUpdate(lastGame);


                        foreach (GameStats gameStats in playerInfo.Games.Where(g => g.GameDate > lastGame.GameDate)) //Update Rest Of The Games
                        {
                            var game = new Game(gameStats, GetNextGamePk(), player.ID);
                            db.Games.Add(game);
                        }
                    }

                    db.SaveChanges();
                }
                Console.WriteLine(playerInfo.PlayerName + " - Success");
            }
            catch (Exception e)
            {
                Console.WriteLine(playerInfo.PlayerName + " - " + e.Message);
            }
        }