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; }
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; }
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(); }