コード例 #1
0
ファイル: Contest.cs プロジェクト: OCZ/TeamWork_ASPNet_MVC
        public Contest(
            EntryType participationType = EntryType.Open,
            EntryType votingType = EntryType.Open,
            RankingType rewardType = RankingType.Multiple,
            DeadlineType deadlineType = DeadlineType.Time)
        {
            this._winners = new HashSet<ContestEntry>();
            this._contestEntries = new HashSet<ContestEntry>();
            this._participants = new HashSet<User>();

            this._participationStrategy = new ParticipationStrategy(participationType);
            this._votingStrategy = new VotingStrategy(votingType);
            this._rewardStrategy = new RewardStrategy(rewardType);
            this._deadlineStrategy = new DeadlineStrategy(deadlineType);
        }
コード例 #2
0
        private void SeedStrategies(PhotoContestDbContext context)
        {
            var dlStrategyByNumber = new DeadlineStrategy {
                DeadlineStrategyType = DeadlineStrategyType.ByNumberOfParticipants, Name = "By Number Of Participants"
            };
            var dlStrategyByTime = new DeadlineStrategy {
                DeadlineStrategyType = DeadlineStrategyType.ByTime, Name = "By Time"
            };

            var rwStrategySingle = new RewardStrategy {
                RewardStrategyType = RewardStrategyType.SingleWinner, Name = "Single Winner"
            };
            var rwStrategyTopN = new RewardStrategy {
                RewardStrategyType = RewardStrategyType.TopNPrizes, Name = "Top N Prizes"
            };

            var vStrategyOpen = new VotingStrategy {
                VotingStrategyType = VotingStrategyType.Open, Name = "Open"
            };
            var vStrategyClosed = new VotingStrategy {
                VotingStrategyType = VotingStrategyType.Closed, Name = "Closed"
            };

            var plStrategyOpen = new ParticipationStrategy {
                ParticipationStrategyType = ParticipationStrategyType.Open, Name = "Open"
            };
            var plStrategyClosed = new ParticipationStrategy {
                ParticipationStrategyType = ParticipationStrategyType.Closed, Name = "Closed"
            };

            context.DeadlineStrategies.AddOrUpdate(dl => dl.DeadlineStrategyType, dlStrategyByNumber);
            context.DeadlineStrategies.AddOrUpdate(dl => dl.DeadlineStrategyType, dlStrategyByTime);

            context.RewardStrategies.AddOrUpdate(rw => rw.RewardStrategyType, rwStrategySingle);
            context.RewardStrategies.AddOrUpdate(rw => rw.RewardStrategyType, rwStrategyTopN);

            context.VotingStrategies.AddOrUpdate(v => v.VotingStrategyType, vStrategyOpen);

            context.VotingStrategies.AddOrUpdate(v => v.VotingStrategyType, vStrategyClosed);
            context.VotingStrategies.AddOrUpdate(v => v.VotingStrategyType, vStrategyClosed);

            context.ParticipationStrategies.AddOrUpdate(pl => pl.ParticipationStrategyType, plStrategyOpen);
            context.ParticipationStrategies.AddOrUpdate(pl => pl.ParticipationStrategyType, plStrategyClosed);

            context.SaveChanges();
        }