예제 #1
0
        public void AddTripMonitor()
        {
            const string userName = "******";
            DateTime enteredDate = DateTime.Now;

            int headerId = default(int);

            using (var session = TubsDataService.GetSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    // Find the first trip for which Dave J. Burgess is the observer
                    var trip = new TubsRepository<Trip>(session).FilterBy(t => t.Observer.StaffCode == "DJB").FirstOrDefault();
                    Assert.NotNull(trip);

                    // Create new, empty, GEN-3
                    var header = new TripMonitor();
                    header.Question1 = false;
                    header.EnteredBy = userName;
                    header.EnteredDate = enteredDate;
                    header.Trip = trip;

                    // Add a child record
                    var detail = new TripMonitorDetail();
                    detail.DetailDate = trip.DepartureDate.HasValue ? trip.DepartureDate.Value : trip.DepartureDateOnly.Value;
                    detail.Comments = "Xyzzy";
                    detail.EnteredBy = userName;
                    detail.EnteredDate = enteredDate;

                    header.AddDetail(detail);

                    Assert.True(new TubsRepository<TripMonitor>(session).Add(header));
                    headerId = header.Id;
                    Assert.False(default(int) == header.Id);
                    transaction.Commit();
                }
            }

            // Delete the entity afterwards
            using (var session = TubsDataService.GetSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var repo = new TubsRepository<TripMonitor>(session);
                    var header = repo.FindBy(headerId);
                    Assert.NotNull(header);
                    Assert.NotNull(header.Trip);
                    Assert.NotNull(header.Details);
                    Assert.True(header.Question1.HasValue);
                    Assert.False(header.Question1.Value);
                    var child = header.Details[0];
                    Assert.NotNull(child);
                    Assert.AreEqual(userName, child.EnteredBy);
                    Assert.True(repo.Delete(header));
                    transaction.Commit();
                }
            }
        }
예제 #2
0
 public virtual void AddDetail(TripMonitorDetail detail)
 {
     detail.Header = this;
     this.Details.Add(detail);
 }