예제 #1
0
        async Task CreatePax(SqlConnection db, Booking booking, List <BookingSource.PaxSource> sourceList)
        {
            int paxIdx = 0;

            foreach (BookingSource.PaxSource paxSource in sourceList)
            {
                BookingPax pax = BookingPax.FromSource(paxSource, booking.Id);
                await CreatePax(db, pax, paxIdx ++);
            }
        }
예제 #2
0
        async Task CreateCabins(SqlConnection db, Booking booking, List <BookingSource.Cabin> sourceList)
        {
            int cabinIdx = 0;

            foreach (BookingSource.Cabin cabinSource in sourceList)
            {
                var  cabin = BookingCabin.FromSource(cabinSource, booking.Id);
                Guid id    = await db.ExecuteScalarAsync <Guid>("insert into [BookingCabin] ([CruiseId], [BookingId], [CabinTypeId], [Order]) output inserted.[Id] values (@CruiseId, @BookingId, @CabinTypeId, @Order)",
                                                                new { CruiseId = booking.CruiseId, BookingId = booking.Id, CabinTypeId = cabin.CabinTypeId, Order = cabinIdx++ });

                int paxIdx = 0;
                IEnumerable <BookingPax> pax = cabinSource.Pax.Select(p => BookingPax.FromSource(p, id));
                await db.ExecuteAsync(
                    "insert into [BookingPax] ([BookingCabinId], [Group], [FirstName], [LastName], [Gender], [Dob], [Nationality], [Years], [Order]) values (@BookingCabinId, @Group, @FirstName, @LastName, @Gender, @Dob, @Nationality, @Years, @Order)",
                    pax.Select(p => new
                {
                    BookingCabinId = p.BookingCabinId, Group = p.Group, FirstName = p.FirstName, LastName = p.LastName, Gender = p.Gender, Dob = p.Dob.ToString(), Nationality = p.Nationality, Years = p.Years, Order = paxIdx++
                }));
            }
        }