Example #1
0
        public ActionResult TeamSelections()
        {
            var model = new TeamSelectionsViewModel();
            var email = User.Identity.GetUserName();

            using (var db = new leaguepredictorEntities())
            {
                var player = db.players.Where(p => p.email.Equals(email)).SingleOrDefault();
                if (player != null)
                {
                    var type       = model.GetType();
                    var selections = player.players_selections.Select(ps =>
                                                                      new {
                        Team     = ps.team.team_name,
                        Position = ps.position,
                        League   = ps.team.league.league_name
                    }).ToList();
                    var name = player.name;
                    model.Name = name;
                    selections.ForEach(sel =>
                    {
                        var property = AttributeHelper.GetPropertyNameByCustomAttribute <TeamSelectionsViewModel, LeaguePositionAttribute>(
                            attr => (attr.League.Equals(sel.League) && attr.Position == sel.Position)
                            ).First();


                        var prop = type.GetProperty(property);
                        prop.SetValue(model, sel.Team, null);
                    });
                }
            }

            return(View(model));
        }
Example #2
0
        public ActionResult TeamSelections(TeamSelectionsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //get league positions
            var selections = new List <LeaguePosition>();
            var properties = AttributeHelper.GetPropertiesWithAttribute <TeamSelectionsViewModel, LeaguePositionAttribute>();

            foreach (var prop in properties)
            {
                var lp     = new LeaguePosition();
                var attr   = AttributeHelper.GetAttributes <TeamSelectionsViewModel, LeaguePositionAttribute>(prop);
                var league = attr.League;
                lp.Team     = AttributeHelper.GetPropertyValue <TeamSelectionsViewModel>(model, prop);
                lp.Position = attr.Position;
                selections.Add(lp);
            }

            var email = User.Identity.GetUserName();

            using (var db = new leaguepredictorEntities())
            {
                var player = db.players.Where(p => p.email.Equals(email)).SingleOrDefault();
                if (player == null)
                {
                    player = new player {
                        email = email, name = model.Name
                    };
                    db.players.Add(player);
                    db.SaveChanges();
                }
                else
                {
                    //remove previous selections
                    foreach (var ps in player.players_selections.ToList())
                    {
                        db.players_selections.Remove(ps);
                    }
                }

                foreach (var sel in selections)
                {
                    var team = db.teams.Where(t => t.team_name == sel.Team).Single();
                    player.players_selections.Add(new players_selections
                    {
                        team     = team,
                        position = sel.Position
                    });
                }

                db.SaveChanges();
            }

            return(View(model));
        }