예제 #1
0
        public ActionResult Index(string menu = "guesses")
        {
            if (!System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
            {
                return(Redirect("~/Account/Login"));
            }

            //ApplicationUser user = DatabaseManager.GetUserById(User.Identity.GetUserId());
            ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());

            //System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().AddToRole(user.Id, "Administrator");
            ViewBag.User = user;
            ViewBag.menu = menu;

            //DatabaseManager.AddUserToGuessGame(user.Id,1);

            IndexModel        model = new IndexModel();
            List <TeamModel>  teams;
            List <MatchModel> matches;

            matches       = DatabaseManager.GetAllMatches().Select(m => ModelHelper.CreateMatchModel(m)).ToList();
            model.Matches = matches;

            switch (menu)
            {
            case "guesses":

                model.Guesses = user.Guesses.ToList().Select(g => ModelHelper.CreateGuessModel(g)).ToList();

                break;

            case "teams":


                break;

            case "games":

                teams = new List <TeamModel>();
                IEnumerable <ApplicationUser> users = DatabaseManager.GetUsersByGuessGame(1);

                model.UsersWithGuessesAndStats = new List <IndexModel.UserGuesses>();
                foreach (var u in users)
                {
                    IndexModel.UserGuesses ug = new IndexModel.UserGuesses();
                    ug.User    = ModelHelper.CreateUserModel(u);
                    ug.Guesses = u.Guesses.Select(g => ModelHelper.CreateGuessModel(g));
                    ModelHelper.Wrapper wrapper = ModelHelper.GetPlayerStatsFromGuesses(ug.Guesses, model.Matches);
                    ug.PlayerStats       = wrapper.PlayerStatModel;
                    ug.PlayerStatsBefore = wrapper.PlayerStatModelBefore;
                    //ug.PlayerMatchesWithGuesses = wrapper.PlayerMatchesWithGuesses;

                    model.UsersWithGuessesAndStats.Add(ug);
                }



                break;


            default:
                teams = new List <TeamModel>();
                break;
            }

            teams = DatabaseManager.GetAllTeam().Select(t => ModelHelper.CreateTeamModel(t)).ToList();

            model.ATeams = ModelHelper.CreateGorupTable(teams.Where(t => t.Group == "A").ToList(), matches);
            model.BTeams = ModelHelper.CreateGorupTable(teams.Where(t => t.Group == "B").ToList(), matches);
            model.CTeams = ModelHelper.CreateGorupTable(teams.Where(t => t.Group == "C").ToList(), matches);
            model.DTeams = ModelHelper.CreateGorupTable(teams.Where(t => t.Group == "D").ToList(), matches);
            model.ETeams = ModelHelper.CreateGorupTable(teams.Where(t => t.Group == "E").ToList(), matches);
            model.FTeams = ModelHelper.CreateGorupTable(teams.Where(t => t.Group == "F").ToList(), matches);

            return(View(model));
        }
예제 #2
0
        public ActionResult GuessStatistic(string userId, string userName, ModelHelper.GuessType type)
        {
            GuessStatistic model = new GuessStatistic();

            model.UserName = userName;

            List <Guess> guesses = DatabaseManager.GetUserById(userId).Guesses.ToList();
            List <Match> matches = DatabaseManager.GetAllMatches();

            List <GuessModel> guessesModel = guesses.Select(g => ModelHelper.CreateGuessModel(g)).ToList();
            List <MatchModel> matchesModel = matches.Select(m => ModelHelper.CreateMatchModel(m)).ToList();

            ModelHelper.Wrapper wrapper = ModelHelper.GetPlayerStatsFromGuesses(guessesModel, matchesModel);

            switch (type)
            {
            case ModelHelper.GuessType.TT:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.TTGuessesByMatch);
                model.Type  = "TT";

                break;

            case ModelHelper.GuessType.MKCSG:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.MKCSGGuessesByMatch);
                model.Type  = "MK + CSG";
                break;

            case ModelHelper.GuessType.MKGK:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.MKGKGuessesByMatch);
                model.Type  = "MK + GK";

                break;

            case ModelHelper.GuessType.MKGKD:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.MKGKDRAWGuessesByMatch);
                model.Type  = "MK + GK (D)";

                break;

            case ModelHelper.GuessType.MKOG:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.MKOGGuessesByMatch);
                model.Type  = "MK + OG";

                break;

            case ModelHelper.GuessType.MK:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.MKGuessesByMatch);
                model.Type  = "MK";

                break;

            case ModelHelper.GuessType.CSG:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.CSGGuessesByMatch);
                model.Type  = "CSG";

                break;

            case ModelHelper.GuessType.OG:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.OGGuessesByMatch);
                model.Type  = "OG";

                break;

            case ModelHelper.GuessType.NONE:

                model.Stats = ModelHelper.GetStatHelpersFromPlayerMatchesWithGuesses(guesses, matches, wrapper.PlayerMatchesWithGuesses.NONEGuessesByMatch);
                model.Type  = "XX";

                break;

            default:
                break;
            }

            return(PartialView("_GuessStatistic", model));
        }