Esempio n. 1
0
        public ActionResult SetMutableDisplayName(string mutableDisplayName)
        {
            using (var db = new FoostatsContext())
            {
                var player = db.Players.FirstOrDefault(x => x.DisplayName == User.Identity.Name);
                if (player != null)
                {
                    player.MutableDisplayName = mutableDisplayName;
                    db.SaveChanges();
                }
            }

            return(Profile(User.Identity.Name));
        }
Esempio n. 2
0
        public ActionResult AddMatches(MatchModel[] matches)
        {
            using (var db = new FoostatsContext()) {
                foreach (MatchModel match in matches)
                {
                    #region Initialize Players

                    //Possibly use a for loop for this later
                    Player t1p1 = getPlayer(db, match.Team1Players[0]);
                    Player t1p2 = getPlayer(db, match.Team1Players[1]);
                    Player t2p1 = getPlayer(db, match.Team2Players[0]);
                    Player t2p2 = getPlayer(db, match.Team2Players[1]);

                    #endregion

                    #region Initialize Teams
                    Team team1 = getTeam(db, t1p1, t1p2);
                    Team team2 = getTeam(db, t2p1, t2p2);

                    #endregion

                    var newMatch = db.Matches.Add(new Match()
                    {
                        Team1          = team1,
                        Team2          = team2,
                        Score1         = match.Team1Score,
                        Score2         = match.Team2Score,
                        Team1Validated = DateTime.UtcNow,
                        Team2Validated = null
                    });

                    db.SaveChanges();
                }
            }


            return(Json("success"));
        }
Esempio n. 3
0
        public ActionResult Add(String Team1Player1, String Team1Player2, String Team2Player1, String Team2Player2, int Score1, int Score2)
        {
            //Database.SetInitializer(new DropCreateDatabaseAlways<FoostatsContext>());

            Match match = null;
            Team  team1, team2;

            using (var db = new FoostatsContext())
            {
                // after initialize players, Player objects are stored in t1p1, t1p2 (optional), t2p1, t2p2 (optional)
                #region Initialize Players
                // Parse out actual player names
                var startPosition = Team1Player1.IndexOf('<') + 1;
                if (startPosition != 0) // implies actual returned value is -1
                {
                    var length = Team1Player1.LastIndexOf('>') - startPosition;
                    Team1Player1 = Team1Player1.Substring(startPosition, length);
                }

                if (!string.IsNullOrEmpty(Team1Player2))
                {
                    startPosition = Team1Player2.IndexOf('<') + 1;
                    if (startPosition != 0) // implies actual returned value is -1
                    {
                        var length = Team1Player2.LastIndexOf('>') - startPosition;
                        Team1Player2 = Team1Player2.Substring(startPosition, length);
                    }
                }

                startPosition = Team2Player1.IndexOf('<') + 1;
                if (startPosition != 0) // implies actual returned value is -1
                {
                    var length = Team2Player1.LastIndexOf('>') - startPosition;
                    Team2Player1 = Team2Player1.Substring(startPosition, length);
                }

                if (!string.IsNullOrEmpty(Team2Player2))
                {
                    startPosition = Team2Player2.IndexOf('<') + 1;
                    if (startPosition != 0) // implies actual returned value is -1
                    {
                        var length = Team2Player2.LastIndexOf('>') - startPosition;
                        Team2Player2 = Team2Player2.Substring(startPosition, length);
                    }
                }

                // Team 1
                Player t1p1 = db.Players.FirstOrDefault(x => x.DisplayName == Team1Player1);
                if (t1p1 == null) // team 1 player 1 exists but is not created
                {
                    t1p1 = db.Players.Add(new Player()
                    {
                        DisplayName = Team1Player1
                    });
                }

                Player t1p2 = null;
                if (!String.IsNullOrEmpty(Team1Player2))
                {
                    t1p2 = db.Players.FirstOrDefault(x => x.DisplayName == Team1Player2);
                    if (t1p2 == null) // team 1 player 2 exists but is not created
                    {
                        t1p2 = db.Players.Add(new Player()
                        {
                            DisplayName = Team1Player2
                        });
                    }
                }

                // Team 2
                Player t2p1 = db.Players.FirstOrDefault(x => x.DisplayName == Team2Player1);
                if (t2p1 == null) // team 2 player 1 exists but is not created
                {
                    t2p1 = db.Players.Add(new Player()
                    {
                        DisplayName = Team2Player1
                    });
                }

                Player t2p2 = null;
                if (!String.IsNullOrEmpty(Team2Player2))
                {
                    t2p2 = db.Players.FirstOrDefault(x => x.DisplayName == Team2Player2);
                    if (t2p2 == null) // team 2 player 2 exists but is not created
                    {
                        t2p2 = db.Players.Add(new Player()
                        {
                            DisplayName = Team2Player2
                        });
                    }
                }

                db.SaveChanges();
                #endregion

                // after initialize teams, Team objects are stored in team1 and team2
                #region Initialize Teams
                if (t1p2 == null)
                {
                    team1 = db.Teams.Include(x => x.Player1).Include(x => x.Player2).FirstOrDefault(x =>
                                                                                                    (x.Player1.Id == t1p1.Id && x.Player2 == null) ||
                                                                                                    (x.Player2.Id == t1p1.Id && x.Player1 == null));
                }
                else
                {
                    team1 = db.Teams.Include(x => x.Player1).Include(x => x.Player2).FirstOrDefault(x =>
                                                                                                    (x.Player1.Id == t1p1.Id && x.Player2.Id == t1p2.Id) ||
                                                                                                    (x.Player2.Id == t1p1.Id && x.Player1.Id == t1p2.Id));
                }

                if (team1 == null)
                {
                    team1 = db.Teams.Add(new Team()
                    {
                        DisplayName = t1p2 == null ? t1p1.DisplayName : string.Format("{0},{1}", t1p1.DisplayName, t1p2.DisplayName),
                        Player1     = t1p1,
                        Player2     = t1p2
                    });
                }

                if (t2p2 == null)
                {
                    team2 = db.Teams.FirstOrDefault(x =>
                                                    (x.Player1.Id == t2p1.Id && x.Player2 == null) ||
                                                    (x.Player2.Id == t2p1.Id && x.Player1 == null));
                }
                else
                {
                    team2 = db.Teams.FirstOrDefault(x =>
                                                    (x.Player1.Id == t2p1.Id && x.Player2.Id == t2p2.Id) ||
                                                    (x.Player2.Id == t2p1.Id && x.Player1.Id == t2p2.Id));
                }

                if (team2 == null)
                {
                    team2 = db.Teams.Add(new Team()
                    {
                        DisplayName = t2p2 == null ? t2p1.DisplayName : string.Format("{0},{1}", t2p1.DisplayName, t2p2.DisplayName),
                        Player1     = t2p1,
                        Player2     = t2p2
                    });
                }

                db.SaveChanges();

                #endregion

                match = db.Matches.Add(new Match()
                {
                    Team1          = team1,
                    Team2          = team2,
                    Score1         = Score1,
                    Score2         = Score2,
                    Team1Validated = DateTime.UtcNow,
                    Team2Validated = null
                });

                db.SaveChanges();
            }

            #region Update Metrics
            foreach (var plugin in MetricCalculators)
            {
                plugin.UpdateMetrics(team1, team2, Score1, Score2);
            }
            #endregion

            return(GetByTeamName(team1.DisplayName));
        }