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