示例#1
0
        public async Task <IActionResult> Add(BookingDTO booking)
        {
            //Save Receiver
            // var receiver = new Receiver
            // {
            //     Id = Guid.NewGuid().ToString(),
            //     Name = booking.ReceiverName,
            //     Address = booking.ReceiverAddress,
            //     Phone = booking.ReceiverPhone,
            //     Email = booking.ReceiverEmail,
            //     ZoneId = booking.ZoneId
            // };
            // receiver = await _unitOfWork.Receivers.Add(receiver);
            var receiver = await _receiverService.Add(booking);

            //get receiverId
            var receiverId      = receiver.Id;
            var totalBooking    = _context.Bookings.Count();
            var courierIdTemp   = "0001"; //remove after
            var bookingSerialNo = Extensions.GenerateSerialForBooking(courierIdTemp, booking.MerchantIdentity, totalBooking + 1);
            //Place Booking
            var placeBooking = new Booking
            {
                Id              = Guid.NewGuid().ToString(),
                ReceiverId      = receiverId,
                MerchantId      = booking.MerchantId,
                BookingDate     = DateTime.Now,
                TotalAmmount    = booking.TotalAmount,
                Discount        = booking.Discount,
                ItemPrice       = booking.ItemPrice,
                SerialNo        = bookingSerialNo,
                MerchantBill    = booking.MerchantBill,
                CourierBill     = booking.CourierBill,
                ReceiverBill    = booking.ReceiverBill,
                ConditionCharge = booking.ConditionCharge
            };

            placeBooking.Status = "Pending";
            var bookingId = placeBooking.Id;
            await _unitOfWork.Bookings.Add(placeBooking);

            //Save BookingItems
            var bookingItem = new BookingItem
            {
                BookingId              = bookingId,
                ItemAttributeId        = booking.ItemAttributeId,
                IsInCity               = booking.IsInCity,
                IsOutCity              = booking.IsOutCity,
                IsConditionChargeApply = booking.IsConditionCharge
            };
            await _unitOfWork.BookingItems.Add(bookingItem);

            var result = await _unitOfWork.CompleteAsync();

            if (result == 0)
            {
                return(BadRequest("error occured"));
            }
            return(Ok());
        }
示例#2
0
        public async Task <IActionResult> GetBookingSerial(string merchantId)
        {
            var totalBooking = await _context.Bookings.CountAsync();

            var courierIdTemp     = "0001"; //remove after
            var showBookingSerial = Extensions.GenerateSerialForBooking(courierIdTemp, merchantId, totalBooking + 1);

            return(Ok(new { showBookingSerial = showBookingSerial }));
        }