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()); }
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 })); }