protected virtual Contest CreateAndSaveContest(string name, ContestInitializationOptions compete, ContestInitializationOptions practice)
        {
            var contestQuestions = new List <ContestQuestion>();

            if (compete.HasQuestions || practice.HasQuestions)
            {
                contestQuestions.Add(new ContestQuestion
                {
                    AskOfficialParticipants = compete.HasQuestions,
                    AskPracticeParticipants = practice.HasQuestions,
                    Text = "SampleQuestion"
                });
            }

            var contest = new Contest
            {
                Name = name,
                PracticeStartTime = practice.Enabled ? (DateTime?)new DateTime(2000, 1, 1) : null,
                PracticePassword  = practice.HasPassword ? this.DefaultPracticePassword : null,
                StartTime         = compete.Enabled ? (DateTime?)new DateTime(2000, 1, 1) : null,
                ContestPassword   = compete.HasPassword ? this.DefaultCompetePassword : null,
                Questions         = contestQuestions,
                IsVisible         = true
            };

            this.EmptyOjsData.Contests.Add(contest);
            this.EmptyOjsData.SaveChanges();

            return(contest);
        }
        protected virtual Contest CreateAndSaveContest(string name, ContestInitializationOptions compete, ContestInitializationOptions practice)
        {
            var contestQuestions = new List<ContestQuestion>();

            if (compete.HasQuestions || practice.HasQuestions)
            {
                contestQuestions.Add(new ContestQuestion
                {
                    AskOfficialParticipants = compete.HasQuestions,
                    AskPracticeParticipants = practice.HasQuestions,
                    Text = "SampleQuestion"
                });
            }

            var contest = new Contest
            {
                Name = name,
                PracticeStartTime = practice.Enabled ? (DateTime?)new DateTime(2000, 1, 1) : null,
                PracticePassword = practice.HasPassword ? this.DefaultPracticePassword : null,
                StartTime = compete.Enabled ? (DateTime?)new DateTime(2000, 1, 1) : null,
                ContestPassword = compete.HasPassword ? this.DefaultCompetePassword : null,
                Questions = contestQuestions,
                IsVisible = true
            };

            this.EmptyOjsData.Contests.Add(contest);
            this.EmptyOjsData.SaveChanges();

            return contest;
        }