public void AssertDeletesAndInsertsRuns() { var builder = new AthleteBuilder(); var athlete = builder.Build(); var selectedDays = WeekdaySelectionEnumeration.FifthDayOfWeek | WeekdaySelectionEnumeration.SeventhDayOfWeek; var trainingPlan = new TrainingPlan { ID = 1, Workload = 50, Goal = CreateGoal(), Athlete = athlete, Start = new DateTime(2009, 1, 1), StartDistance = 2000, PreferredWeekdays = (int)selectedDays }; MemoryDataContext.Clear(); Assert.IsTrue(MemoryDataContext.IsEmpty); MemoryDataContext.InsertOnSubmit(athlete); MemoryDataContext.InsertOnSubmit(trainingPlan); var runDataAccess = new RunDataAccess(); runDataAccess.CreateRuns(trainingPlan); Assert.AreEqual(47, MemoryDataContext.Queryable<Run>().Count()); runDataAccess.CreateRuns(trainingPlan); Assert.AreEqual(47, MemoryDataContext.Queryable<Run>().Count()); }
public TrainingPlan SaveTrainingPlan(TrainingPlan trainingPlan) { DataContext.RollbackAndAttach(trainingPlan.Athlete); trainingPlan.Goal.Athlete = trainingPlan.Athlete; if (trainingPlan.ID > 0) { DataContext.UpdateAndAttach(trainingPlan.Goal); DataContext.UpdateAndAttach(trainingPlan); } else { DataContext.InsertOnSubmit(trainingPlan); } DataContext.Commit(); var runDataAccess = new RunDataAccess(DataContext); runDataAccess.CreateRuns(trainingPlan); return trainingPlan; }