public ActionResult AddPicks()
        {
            //TODO load picks if exist for current week
            var fixtures  = _gameService.GetGameWeekFixtures();
            var playerId  = Guid.Empty;
            var viewModel = new AddPicksViewModel
            {
                PlayerId = playerId
            };

            foreach (var fixture in fixtures)
            {
                viewModel.PickItems.Add(new PickItem
                {
                    HomeTeamName     = fixture.HomeTeam.Name,
                    HomeTeamBadgeUrl = fixture.HomeTeam.BadgeUrl,
                    AwayTeamName     = fixture.AwayTeam.Name,
                    AwayTeamBadgeUrl = fixture.AwayTeam.BadgeUrl,
                    KickOffTime      = fixture.KickOffDateTime,
                    FixtureId        = fixture.Id
                });
            }

            return(View(viewModel));
        }
Beispiel #2
0
        public ActionResult Index()
        {
            var playerId = CurrentUser.Players.FirstOrDefault()?.Id;

            if (playerId == null)
            {
                throw new ArgumentNullException(nameof(playerId));
            }

            var viewModel       = new AddPicksViewModel();
            var currentGameweek = _gameService.GetCurrentGameweek();

            viewModel.Gameweek = currentGameweek;
            DateTime openDate, closeDate;

            _gameService.PopulatePickOpenCloseDates(out openDate, out closeDate);
            viewModel.OpenDateTime  = openDate;
            viewModel.CloseDateTime = closeDate;

            var fixtures = _gameService.GetGameWeekFixtures();

            foreach (var fixture in fixtures.OrderBy(f => f.KickOffDateTime))
            {
                viewModel.PickItems.Add(new PickItem
                {
                    HomeTeamName     = fixture.HomeTeam.Name,
                    HomeTeamBadgeUrl = fixture.HomeTeam.BadgeUrl,
                    AwayTeamName     = fixture.AwayTeam.Name,
                    AwayTeamBadgeUrl = fixture.AwayTeam.BadgeUrl,
                    KickOffTime      = fixture.KickOffDateTime,
                    FixtureId        = fixture.Id
                });
            }

            var picks = _gameService.GetPlayerPicks((Guid)playerId, currentGameweek);

            if (picks.Any())
            {
                foreach (var pick in picks)
                {
                    var pickitem = viewModel.PickItems.Where(pi => pi.FixtureId == pick.FixtureId).SingleOrDefault();
                    if (pickitem != null)
                    {
                        pickitem.HomeScore = pick.HomeScore.ToString();
                        pickitem.AwayScore = pick.AwayScore.ToString();
                        pickitem.Banker    = pick.Banker;
                        pickitem.Double    = pick.Double;
                    }
                }
            }

            viewModel.ReadOnly = !_gameService.IsGameweekOpen(currentGameweek);

            return(View(viewModel));
        }
        public ActionResult AddPicks(AddPicksViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(v => v.Errors);
                return(View(viewModel));
            }

            viewModel.PickItems.ForEach(item =>
            {
                _gameService.AddPick(viewModel.PlayerId, item.FixtureId, int.Parse(item.HomeScore), int.Parse(item.AwayScore), item.Banker, item.Double);
            });

            return(View(viewModel));
        }
Beispiel #4
0
        public ActionResult Index(AddPicksViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var playerId = CurrentUser.Players.FirstOrDefault()?.Id;

            if (playerId == null)
            {
                throw new ArgumentNullException(nameof(playerId));
            }

            model.PickItems.ForEach(item =>
            {
                _gameService.AddPick((Guid)playerId, item.FixtureId, int.Parse(item.HomeScore), int.Parse(item.AwayScore), item.Banker, item.Double);
            });

            AddSuccess("Scores sucessfully updated");

            return(RedirectToAction("Index"));
        }