コード例 #1
0
        public async Task <FileDto> GetBookingsToExcel(GetAllBookingsInput input)
        {
            var filteredBookings = _bookingRepository.GetAll().AppendBookingMainFilter(input, AbpSession.UserId);

            var bookings = from o in filteredBookings

                           join o1 in _tourRepository.GetAll() on o.TourId equals o1.Id into j1
                           from s1 in j1.DefaultIfEmpty()

                           join tourDate in _tourDateRepository.GetAll() on o.TourDateId equals tourDate.Id into tourDates
                           from td in tourDates.DefaultIfEmpty()

                           join o2 in _stateRepository.GetAll() on o.StateId equals o2.Id into j2
                           from s2 in j2.DefaultIfEmpty()

                           join o3 in _userRepository.GetAll() on o.UserId equals o3.Id into j3
                           from s3 in j3.DefaultIfEmpty()

                           select new GetBookingForViewDto()
            {
                Booking = new BookingDto
                {
                    Id             = o.Id,
                    TourId         = o.TourId,
                    UserId         = o.UserId,
                    Address        = o.Address,
                    StateId        = o.StateId,
                    Suburb         = o.Suburb,
                    PostCode       = o.PostCode,
                    PromoCode      = o.PromoCode,
                    TotalPrice     = o.TotalPrice,
                    Name           = o.Name,
                    PhoneNumber    = o.PhoneNumber,
                    NumberOfPeople = o.NumberOfPeople,
                    Status         = o.Status,
                    Email          = o.Email
                },
                TourStartDate = td.StartDate,
                TourEndDate   = td.EndDate,
                BookingCode   = "B-" + o.Id,
                TourName      = s1 != null ? s1.Name : null,
                StateCode     = s2 != null ? s2.Code : null,
                UserFullName  = s3 != null ? s3.FullName : null
            };

            var results = await bookings.OrderBy(input.Sorting ?? "Booking.Id asc").ToListAsync();

            return(_bookingsExcelExporter.ExportToFile(results));
        }
コード例 #2
0
ファイル: BookingsAppService.cs プロジェクト: musdq/ticketer
        public async Task <FileDto> GetBookingsToExcel(GetAllBookingsForExcelInput input)
        {
            var filteredBookings = _bookingRepository.GetAll()
                                   .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.FirstName.Contains(input.Filter) || e.LastName.Contains(input.Filter) || e.PhoneNumber.Contains(input.Filter) || e.EmailAddress.Contains(input.Filter))
                                   .WhereIf(input.MinBookingTypeFilter != null, e => e.BookingType >= input.MinBookingTypeFilter)
                                   .WhereIf(input.MaxBookingTypeFilter != null, e => e.BookingType <= input.MaxBookingTypeFilter)
                                   .WhereIf(input.MinTicketTypeFilter != null, e => e.TicketType >= input.MinTicketTypeFilter)
                                   .WhereIf(input.MaxTicketTypeFilter != null, e => e.TicketType <= input.MaxTicketTypeFilter)
                                   .WhereIf(input.MinTicketPriceFilter != null, e => e.TicketPrice >= input.MinTicketPriceFilter)
                                   .WhereIf(input.MaxTicketPriceFilter != null, e => e.TicketPrice <= input.MaxTicketPriceFilter)
                                   .WhereIf(input.MinstatusFilter != null, e => e.Status >= input.MinstatusFilter)
                                   .WhereIf(input.MaxstatusFilter != null, e => e.Status <= input.MaxstatusFilter)
                                   .WhereIf(!string.IsNullOrWhiteSpace(input.FirstNameFilter), e => e.FirstName == input.FirstNameFilter)
                                   .WhereIf(!string.IsNullOrWhiteSpace(input.LastNameFilter), e => e.LastName == input.LastNameFilter)
                                   .WhereIf(!string.IsNullOrWhiteSpace(input.PhoneNumberFilter), e => e.PhoneNumber == input.PhoneNumberFilter)
                                   .WhereIf(!string.IsNullOrWhiteSpace(input.EmailAddressFilter), e => e.EmailAddress == input.EmailAddressFilter);

            var query = (from o in filteredBookings
                         select new GetBookingForViewDto()
            {
                Booking = new BookingDto
                {
                    BookingType = o.BookingType,
                    TicketType = o.TicketType,
                    TicketPrice = o.TicketPrice,
                    status = o.Status,
                    FirstName = o.FirstName,
                    LastName = o.LastName,
                    PhoneNumber = o.PhoneNumber,
                    EmailAddress = o.EmailAddress,
                    Id = o.Id
                }
            });


            var bookingListDtos = await query.ToListAsync();

            return(_bookingsExcelExporter.ExportToFile(bookingListDtos));
        }