Esempio n. 1
0
        public LeagueYearViewModel(LeagueYear leagueYear, SupportedYear supportedYear, IEnumerable <Publisher> publishers, FantasyCriticUser currentUser, Publisher userPublisher,
                                   IClock clock, PlayStatus playStatus, StartDraftResult startDraftResult, IEnumerable <FantasyCriticUser> users, Maybe <Publisher> nextDraftPublisher, DraftPhase draftPhase,
                                   IEnumerable <PublisherGame> availableCounterPicks, LeagueWideValues leagueWideValues)
        {
            LeagueID                = leagueYear.League.LeagueID;
            Year                    = leagueYear.Year;
            SupportedYear           = new SupportedYearViewModel(supportedYear);
            StandardGames           = leagueYear.Options.StandardGames;
            GamesToDraft            = leagueYear.Options.GamesToDraft;
            CounterPicks            = leagueYear.Options.CounterPicks;
            MaximumEligibilityLevel = new EligibilityLevelViewModel(leagueYear.Options.MaximumEligibilityLevel, 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);
            Publishers              = publishers.OrderBy(x => x.DraftPosition).Select(x => new PublisherViewModel(x, clock, nextDraftPublisher)).ToList();
            Standings               = publishers.OrderByDescending(x => x.TotalFantasyPoints).Select(x => new StandingViewModel(x, leagueYear.Options.ScoringSystem, leagueWideValues)).ToList();

            if (!(userPublisher is null))
            {
                UserPublisher = new PublisherViewModel(userPublisher, clock);
            }

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

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

            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)).ToList();
        }
 public MasterGameViewModel(MasterSubGame masterSubGame, EligibilityLevel eligibilityLevel)
 {
     MasterGameID         = masterSubGame.MasterGameID;
     GameName             = masterSubGame.GameName;
     EstimatedReleaseDate = masterSubGame.EstimatedReleaseDate;
     ReleaseDate          = masterSubGame.ReleaseDate;
     CriticScore          = masterSubGame.CriticScore;
     AveragedScore        = false;
     EligibilityLevel     = new EligibilityLevelViewModel(eligibilityLevel, false);
     OpenCriticID         = masterSubGame.OpenCriticID;
     SubGames             = null;
 }
 public MasterGameViewModel(MasterGame masterGame)
 {
     MasterGameID         = masterGame.MasterGameID;
     GameName             = masterGame.GameName;
     EstimatedReleaseDate = masterGame.EstimatedReleaseDate;
     ReleaseDate          = masterGame.ReleaseDate;
     CriticScore          = masterGame.CriticScore;
     AveragedScore        = masterGame.AveragedScore;
     EligibilityLevel     = new EligibilityLevelViewModel(masterGame.EligibilityLevel, false);
     OpenCriticID         = masterGame.OpenCriticID;
     SubGames             = masterGame.SubGames.Select(x => new MasterGameViewModel(x, masterGame.EligibilityLevel)).ToList();
     BoxartFileName       = masterGame.BoxartFileName;
 }