コード例 #1
0
        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());
        }
コード例 #2
0
ファイル: AthleteDataAccess.cs プロジェクト: 1pindsvin/yagni
        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;
        }