public async Task <GetBookingForEditOutput> GetBookingForEdit(EntityDto input)
        {
            var result = new BookingEditDto();
            var header = await Repository
                         .GetAllIncluding(x => x.Customer, x => x.Salesman)
                         .FirstOrDefaultAsync(x => x.Id == input.Id);

            if (header != null)
            {
                ObjectMapper.Map(header, result);
                var details = await _bookingDetailRepository.GetAll()
                              .Include(x => x.Product)
                              .Where(x => x.BookingHeaderId == header.Id)
                              .ToListAsync();

                result.BookingDetails = ObjectMapper.Map <List <BookingEditDetailsDto> >(details);
            }

            var bookingEditDto = ObjectMapper.Map <BookingEditDto>(result);

            return(new GetBookingForEditOutput
            {
                BookingEdit = bookingEditDto
            });
        }
        public async Task <BookingEditDto> GetBookingAsync(int bookingId)
        {
            var result  = new BookingEditDto();
            var booking = await Repository
                          .GetAllIncluding(x => x.Customer, x => x.Salesman)
                          .FirstOrDefaultAsync(x => x.Id == bookingId);

            if (booking != null)
            {
                ObjectMapper.Map(booking, result);
                var details = await _bookingDetailRepository.GetAll()
                              .Include(x => x.Product)
                              .Where(x => x.BookingHeaderId == booking.Id)
                              .ToListAsync();

                result.BookingDetails = ObjectMapper.Map <List <BookingEditDetailsDto> >(details);
            }

            return(result);
        }