Example #1
0
        public MasterGameYearViewModel(MasterSubGame masterSubGame, MasterGameYear masterGame, IClock clock)
        {
            MasterGameID                 = masterSubGame.MasterGameID;
            Year                         = masterGame.Year;
            GameName                     = masterSubGame.GameName;
            EstimatedReleaseDate         = masterSubGame.EstimatedReleaseDate;
            SortableEstimatedReleaseDate = masterSubGame.SortableEstimatedReleaseDate;
            ReleaseDate                  = masterSubGame.ReleaseDate;
            IsReleased                   = masterSubGame.IsReleased(clock);
            WillRelease                  = masterGame.WillRelease();
            CriticScore                  = masterSubGame.CriticScore;
            AveragedScore                = false;
            EligibilitySettings          = new EligibilitySettingsViewModel(masterGame.MasterGame.EligibilitySettings, false);
            OpenCriticID                 = masterSubGame.OpenCriticID;
            SubGames                     = null;

            PercentStandardGame         = masterGame.PercentStandardGame;
            PercentCounterPick          = masterGame.PercentCounterPick;
            EligiblePercentStandardGame = masterGame.EligiblePercentStandardGame;
            EligiblePercentCounterPick  = masterGame.EligiblePercentCounterPick;
            AverageDraftPosition        = masterGame.AverageDraftPosition;
            HypeFactor                   = masterGame.HypeFactor;
            DateAdjustedHypeFactor       = masterGame.DateAdjustedHypeFactor;
            ProjectedFantasyPoints       = masterGame.GetAlwaysProjectedFantasyPoints(new StandardScoringSystem(), false);
            ProjectedOrRealFantasyPoints = masterGame.GetProjectedOrRealFantasyPoints(new StandardScoringSystem(), false, clock);
            AddedTimestamp               = masterGame.MasterGame.AddedTimestamp;
        }
 public MasterGameViewModel(MasterSubGame masterSubGame, EligibilitySettings eligibilitySettings, IClock clock)
 {
     MasterGameID                 = masterSubGame.MasterGameID;
     GameName                     = masterSubGame.GameName;
     EstimatedReleaseDate         = masterSubGame.EstimatedReleaseDate;
     SortableEstimatedReleaseDate = masterSubGame.SortableEstimatedReleaseDate;
     ReleaseDate                  = masterSubGame.ReleaseDate;
     IsReleased                   = masterSubGame.IsReleased(clock.GetCurrentInstant());
     CriticScore                  = masterSubGame.CriticScore;
     AveragedScore                = false;
     EligibilitySettings          = new EligibilitySettingsViewModel(eligibilitySettings, false);
     OpenCriticID                 = masterSubGame.OpenCriticID;
     SubGames                     = null;
 }
 public MasterGameViewModel(MasterGame masterGame, IClock clock)
 {
     MasterGameID                 = masterGame.MasterGameID;
     GameName                     = masterGame.GameName;
     EstimatedReleaseDate         = masterGame.EstimatedReleaseDate;
     SortableEstimatedReleaseDate = masterGame.GetDefiniteSortableEstimatedReleaseDate();
     ReleaseDate                  = masterGame.ReleaseDate;
     IsReleased                   = masterGame.IsReleased(clock.GetCurrentInstant());
     CriticScore                  = masterGame.CriticScore;
     AveragedScore                = masterGame.AveragedScore;
     EligibilitySettings          = new EligibilitySettingsViewModel(masterGame.EligibilitySettings, false);
     OpenCriticID                 = masterGame.OpenCriticID;
     SubGames                     = masterGame.SubGames.Select(x => new MasterGameViewModel(x, masterGame.EligibilitySettings, clock)).ToList();
     BoxartFileName               = masterGame.BoxartFileName;
     AddedTimestamp               = masterGame.AddedTimestamp;
 }
Example #4
0
        public MasterGameYearViewModel(MasterGameYear masterGame, IClock clock)
        {
            MasterGameID                 = masterGame.MasterGame.MasterGameID;
            Year                         = masterGame.Year;
            GameName                     = masterGame.MasterGame.GameName;
            EstimatedReleaseDate         = masterGame.MasterGame.EstimatedReleaseDate;
            SortableEstimatedReleaseDate = masterGame.MasterGame.GetDefiniteSortableEstimatedReleaseDate();
            ReleaseDate                  = masterGame.MasterGame.ReleaseDate;
            IsReleased                   = masterGame.MasterGame.IsReleased(clock.GetCurrentInstant());
            WillRelease                  = masterGame.WillRelease();
            CriticScore                  = masterGame.MasterGame.CriticScore;
            AveragedScore                = masterGame.MasterGame.AveragedScore;
            EligibilitySettings          = new EligibilitySettingsViewModel(masterGame.MasterGame.EligibilitySettings, false);
            OpenCriticID                 = masterGame.MasterGame.OpenCriticID;
            SubGames                     = masterGame.MasterGame.SubGames.Select(x => new MasterGameYearViewModel(x, masterGame, clock)).ToList();
            BoxartFileName               = masterGame.MasterGame.BoxartFileName;
            PercentStandardGame          = masterGame.PercentStandardGame;
            PercentCounterPick           = masterGame.PercentCounterPick;

            if (masterGame.MasterGame.EligibilityChanged)
            {
                EligiblePercentStandardGame = masterGame.PercentStandardGame;
                EligiblePercentCounterPick  = masterGame.PercentCounterPick;
            }
            else
            {
                EligiblePercentStandardGame = masterGame.EligiblePercentStandardGame;
                EligiblePercentCounterPick  = masterGame.EligiblePercentCounterPick;
            }

            AverageDraftPosition         = masterGame.AverageDraftPosition;
            HypeFactor                   = masterGame.HypeFactor;
            DateAdjustedHypeFactor       = masterGame.DateAdjustedHypeFactor;
            ProjectedFantasyPoints       = masterGame.GetAlwaysProjectedFantasyPoints(new StandardScoringSystem(), false);
            ProjectedOrRealFantasyPoints = masterGame.GetProjectedOrRealFantasyPoints(new StandardScoringSystem(), false, clock);
            AddedTimestamp               = masterGame.MasterGame.AddedTimestamp;
        }
Example #5
0
        public LeagueYearViewModel(LeagueYear leagueYear, SupportedYear supportedYear, IEnumerable <Publisher> publishers, Maybe <Publisher> userPublisher,
                                   IClock clock, PlayStatus playStatus, StartDraftResult startDraftResult, IEnumerable <FantasyCriticUser> activeUsers, Maybe <Publisher> nextDraftPublisher, DraftPhase draftPhase,
                                   IEnumerable <PublisherGame> availableCounterPicks, LeagueOptions options, SystemWideValues systemWideValues, IEnumerable <LeagueInvite> invitedPlayers,
                                   bool userIsInLeague, bool userIsInvitedToLeague, bool userIsManager, Maybe <FantasyCriticUser> accessingUser)
        {
            LeagueID            = leagueYear.League.LeagueID;
            Year                = leagueYear.Year;
            SupportedYear       = new SupportedYearViewModel(supportedYear);
            StandardGames       = leagueYear.Options.StandardGames;
            GamesToDraft        = leagueYear.Options.GamesToDraft;
            CounterPicks        = leagueYear.Options.CounterPicks;
            EligibilitySettings = new EligibilitySettingsViewModel(leagueYear.Options.AllowedEligibilitySettings, false);
            DraftSystem         = leagueYear.Options.DraftSystem.Value;
            PickupSystem        = leagueYear.Options.PickupSystem.Value;
            ScoringSystem       = leagueYear.Options.ScoringSystem.Name;
            UnlinkedGameExists  = publishers.SelectMany(x => x.PublisherGames).Any(x => x.MasterGame.HasNoValue);
            UserIsActive        = activeUsers.Any(x => x.UserID == accessingUser.Unwrap(y => y.UserID));
            Publishers          = publishers
                                  .OrderBy(x => x.DraftPosition)
                                  .Select(x => new PublisherViewModel(x, clock, nextDraftPublisher, userIsInLeague, userIsInvitedToLeague, systemWideValues, supportedYear.Finished))
                                  .ToList();

            if (userPublisher.HasValue)
            {
                UserPublisher = new PublisherViewModel(userPublisher.Value, clock, userIsInLeague, userIsInvitedToLeague, systemWideValues, supportedYear.Finished);
            }

            List <PlayerWithPublisherViewModel> playerVMs = new List <PlayerWithPublisherViewModel>();
            bool allPublishersMade = true;

            foreach (var user in activeUsers)
            {
                var publisher = publishers.SingleOrDefault(x => x.User.UserID == user.UserID);
                if (publisher is null)
                {
                    playerVMs.Add(new PlayerWithPublisherViewModel(leagueYear, user, false));
                    allPublishersMade = false;
                }
                else
                {
                    playerVMs.Add(new PlayerWithPublisherViewModel(leagueYear, user, publisher, clock, options, systemWideValues,
                                                                   userIsInLeague, userIsInvitedToLeague, supportedYear, false));
                }
            }

            foreach (var invitedPlayer in invitedPlayers)
            {
                allPublishersMade = false;

                if (invitedPlayer.User.HasValue)
                {
                    playerVMs.Add(new PlayerWithPublisherViewModel(invitedPlayer.InviteID, invitedPlayer.User.Value.DisplayName));
                }
                else
                {
                    if (accessingUser.HasValue)
                    {
                        if (userIsManager || string.Equals(invitedPlayer.EmailAddress, accessingUser.Value.EmailAddress, StringComparison.OrdinalIgnoreCase))
                        {
                            playerVMs.Add(new PlayerWithPublisherViewModel(invitedPlayer.InviteID, invitedPlayer.EmailAddress));
                        }
                        else
                        {
                            playerVMs.Add(new PlayerWithPublisherViewModel(invitedPlayer.InviteID, "<Email Address Hidden>"));
                        }
                    }
                    else
                    {
                        playerVMs.Add(new PlayerWithPublisherViewModel(invitedPlayer.InviteID, "<Email Address Hidden>"));
                    }
                }
            }

            bool readyToSetDraftOrder = false;

            if (allPublishersMade)
            {
                Players = playerVMs.OrderBy(x => x.Publisher.DraftPosition).ToList();
                readyToSetDraftOrder = true;
            }
            else
            {
                Players = playerVMs;
            }

            PlayStatus            = new PlayStatusViewModel(playStatus, readyToSetDraftOrder, startDraftResult.Ready, startDraftResult.Errors, draftPhase);
            AvailableCounterPicks = availableCounterPicks
                                    .Select(x => new PublisherGameViewModel(x, clock, leagueYear.Options.ScoringSystem, systemWideValues))
                                    .OrderBy(x => x.GameName).ToList();
            EligibilityOverrides = leagueYear.EligibilityOverrides.Select(x => new EligibilityOverrideViewModel(x, clock)).ToList();
        }