public virtual void Can_add_valid_second_dependent_when_multiple_possible_principal_sides()
        {
            ExecuteWithStrategyInTransaction(
                context =>
            {
                var hiddenAreaTask = new HiddenAreaTask();
                hiddenAreaTask.Choices.Add(new TaskChoice());

                context.Add(hiddenAreaTask);

                Assert.True(context.ChangeTracker.HasChanges());

                context.SaveChanges();

                Assert.False(context.ChangeTracker.HasChanges());
            },
                context =>
            {
                var hiddenAreaTask = context.Set <HiddenAreaTask>().Include(e => e.Choices).Single();

                Assert.Equal(hiddenAreaTask.Id, hiddenAreaTask.Choices.Single().QuestTaskId);

                Assert.Same(hiddenAreaTask.Choices.Single(), context.Set <TaskChoice>().Single());

                Assert.Empty(context.Set <QuizTask>().Include(e => e.Choices));
            });
        }
        public virtual void Can_add_multiple_dependents_when_multiple_possible_principal_sides()
        {
            ExecuteWithStrategyInTransaction(
                context =>
            {
                var quizTask = new QuizTask();
                quizTask.Choices.Add(new TaskChoice());
                quizTask.Choices.Add(new TaskChoice());

                context.Add(quizTask);

                var hiddenAreaTask = new HiddenAreaTask();
                hiddenAreaTask.Choices.Add(new TaskChoice());
                hiddenAreaTask.Choices.Add(new TaskChoice());

                context.Add(hiddenAreaTask);

                Assert.True(context.ChangeTracker.HasChanges());

                context.SaveChanges();

                Assert.False(context.ChangeTracker.HasChanges());
            },
                context =>
            {
                var quizTask       = context.Set <QuizTask>().Include(e => e.Choices).Single();
                var hiddenAreaTask = context.Set <HiddenAreaTask>().Include(e => e.Choices).Single();

                Assert.Equal(2, quizTask.Choices.Count);
                foreach (var quizTaskChoice in quizTask.Choices)
                {
                    Assert.Equal(quizTask.Id, quizTaskChoice.QuestTaskId);
                }

                Assert.Equal(2, hiddenAreaTask.Choices.Count);
                foreach (var hiddenAreaTaskChoice in hiddenAreaTask.Choices)
                {
                    Assert.Equal(hiddenAreaTask.Id, hiddenAreaTaskChoice.QuestTaskId);
                }

                foreach (var taskChoice in context.Set <TaskChoice>())
                {
                    Assert.Equal(
                        1,
                        quizTask.Choices.Count(e => e.Id == taskChoice.Id)
                        + hiddenAreaTask.Choices.Count(e => e.Id == taskChoice.Id));
                }
            });
        }
Beispiel #3
0
        public async Task <IActionResult> Get()
        {
            var quizTask = new QuizTask
            {
                StartTime = 45m,
                Duration  = 10m,
                Subject   = "Is there any life on the Mars?",
                Choices   = new List <TaskChoice>()
            };

            quizTask.Choices.Add(new TaskChoice {
                Text = "Yes", IsCorrect = false
            });
            quizTask.Choices.Add(new TaskChoice {
                Text = "No", IsCorrect = false
            });
            quizTask.Choices.Add(new TaskChoice {
                Text = "May be", IsCorrect = false
            });
            quizTask.Choices.Add(new TaskChoice {
                Text = "I don't know", IsCorrect = false
            });

            var hiddenAreaTask = new HiddenAreaTask
            {
                StartTime = 61m,
                Duration  = 10m,
                CenterX   = 0.5m,
                CenterY   = 0.5m,
                Radius    = 0.2m,
                Choices   = new List <TaskChoice>()
            };

            hiddenAreaTask.Choices.Add(new TaskChoice {
                CenterX = 0.2m, CenterY = 0.2m, Radius = 0.1m, ImageFilename = "choice1", ImageMime = "image/jpeg", IsCorrect = false
            });
            hiddenAreaTask.Choices.Add(new TaskChoice {
                CenterX = 0.3m, CenterY = 0.3m, Radius = 0.1m, ImageFilename = "choice2", ImageMime = "image/jpeg", IsCorrect = true
            });
            hiddenAreaTask.Choices.Add(new TaskChoice {
                CenterX = 0.4m, CenterY = 0.4m, Radius = 0.1m, ImageFilename = "choice3", ImageMime = "image/jpeg", IsCorrect = false
            });

            var hearTask = new HearTask
            {
                StartTime      = 50m,
                Duration       = 65m,
                Subject        = "Kitchen",
                TimelinePoints = new List <TimelinePoint>()
            };

            hearTask.TimelinePoints.Add(new TimelinePoint {
                Position = 55m
            });
            hearTask.TimelinePoints.Add(new TimelinePoint {
                Position = 60m
            });

            var quest = new Quest
            {
                Name        = "Cool video quest",
                StartTime   = 35.6m,
                Duration    = 103.5m,
                IsPublished = false,
                Tasks       = new List <QuestTask>()
            };

            quest.Tasks.Add(quizTask);
            quest.Tasks.Add(hiddenAreaTask);
            quest.Tasks.Add(hearTask);

            _context.Quests.Add(quest);
            await _context.SaveChangesAsync();

            return(Ok("Quest was successfully added"));
        }