public void Test2() { List <Booking> actual = new List <Booking>(); actual.Add(Booking.makeBooking(0, 5)); actual.Add(Booking.makeBooking(7, 13)); actual.Add(Booking.makeBooking(3, 9)); actual.Add(Booking.makeBooking(5, 7)); actual.Add(Booking.makeBooking(6, 6)); actual.Add(Booking.makeBooking(0, 4)); BookingConfirmation.CheckBooking(3, actual); List <Booking> expected = new List <Booking>(); expected.Add(Booking.makeBooking(0, 5)); expected.Add(Booking.makeBooking(7, 13)); expected.Add(Booking.makeBooking(3, 9)); expected.Add(Booking.makeBooking(5, 7)); expected.Add(Booking.makeBooking(6, 6)); expected.Add(Booking.makeBooking(0, 4)); //all items accepted test foreach (var i in expected) { i.isBooked = true; } CollectionAssert.AreEqual(expected, actual); }
public void Test3() { List <Booking> actual = new List <Booking>(); actual.Add(Booking.makeBooking(1, 3)); actual.Add(Booking.makeBooking(2, 5)); actual.Add(Booking.makeBooking(1, 9)); actual.Add(Booking.makeBooking(0, 15)); BookingConfirmation.CheckBooking(3, actual); List <Booking> expected = new List <Booking>(); expected.Add(Booking.makeBooking(1, 3)); expected.Add(Booking.makeBooking(2, 5)); expected.Add(Booking.makeBooking(1, 9)); expected.Add(Booking.makeBooking(0, 15)); foreach (var i in expected) { i.isBooked = true; } //last item declined test expected[expected.Count - 1].isBooked = false; CollectionAssert.AreEqual(expected, actual); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { _logger.LogInformation("Booking Processing Service Started"); // Magic line to yield control of this background service back to the rest of the startup process await Task.Yield(); // Create new consumer and producer var kafkaConsumerService = new KafkaConsumerService(_logger, _consumerConfig, KafkaTopics.TOPIC_BOOKING_REQUEST); var kafkaProducerService = new KafkaProducerService(_logger, _producerConfig, KafkaTopics.TOPIC_BOOKING_CONFIRMATION); while (!stoppingToken.IsCancellationRequested) { try { // Wait for a new booking request var bookingRequest = kafkaConsumerService.WaitAndRead <MovieBooking>(stoppingToken); if (bookingRequest != null) { _logger.LogInformation($"Processing new booking: {bookingRequest}"); // Create new booking confirmation based on a request var bookingConfirmation = new BookingConfirmation(bookingRequest); // Publish a booking confirmation to a Kafka stream await kafkaProducerService.Write(bookingConfirmation); } } catch (Exception e) { _logger.LogError($"Error in processing : {e.Message}"); } } }
public static void AddMasterData(BookingConfirmationViewModel model) { var manager = PlugInManager.GetBookingDataManager(); var bookingconfirmation = new BookingConfirmation(); bookingconfirmation.Id = Guid.NewGuid().ToString(); bookingconfirmation.BookingInquiryNummer = model.BookingInquiryNummer; bookingconfirmation.BookingConfirmationNummer = model.BookingConfirmationNummer; bookingconfirmation.BookingProcessId = model.BookingProcessId; bookingconfirmation.docType = model.docType; bookingconfirmation.OfferInfo.Country = model.Country; bookingconfirmation.OfferInfo.PlaceName = model.PlaceName; bookingconfirmation.OfferInfo.SiteName = model.SiteName; bookingconfirmation.OfferInfo.TourOperatorCode = model.TourOperatorCode; bookingconfirmation.OfferInfo.CheckIn = model.CheckIn; bookingconfirmation.OfferInfo.CheckOut = model.CheckOut; bookingconfirmation.TravelApplicant.FirstName = model.FirstName; bookingconfirmation.TravelApplicant.LastName = model.LastName; bookingconfirmation.TravelApplicant.Contry = model.TravelerCountry; bookingconfirmation.TravelApplicant.Adress = model.Address; bookingconfirmation.OfferInfo.OfferName = model.OfferName; bookingconfirmation.TravelApplicant.MobilePhone = model.MobilePhone; bookingconfirmation.TravelApplicant.Phone = model.Phone; bookingconfirmation.TravelApplicant.ZipCode = model.ZipCode; bookingconfirmation.TravelApplicant.Place = model.PlaceName; bookingconfirmation.HtmlDocumentView = model.HtmlDocumentView; manager.AddMasterData(bookingconfirmation); }
public void AddMasterData(BookingConfirmation document) { if (String.IsNullOrEmpty(document.Id)) { document.Id = Guid.NewGuid().ToString(); } collectionBookingConfirmation.InsertOne(document); }
public void Test1b() { List <Booking> actual = new List <Booking>(); actual.Add(Booking.makeBooking(200, 400)); BookingConfirmation.CheckBooking(1, actual); List <Booking> expected = new List <Booking>(); expected.Add(Booking.makeBooking(200, 400)); expected[0].isBooked = false; CollectionAssert.AreEqual(expected, actual); }
public void Test5() { List <Booking> actual = new List <Booking>(); actual.Add(Booking.makeBooking(1, 3)); actual.Add(Booking.makeBooking(0, 4)); actual.Add(Booking.makeBooking(2, 3)); actual.Add(Booking.makeBooking(5, 5)); actual.Add(Booking.makeBooking(4, 10)); actual.Add(Booking.makeBooking(10, 10)); actual.Add(Booking.makeBooking(6, 7)); actual.Add(Booking.makeBooking(8, 10)); actual.Add(Booking.makeBooking(8, 9)); BookingConfirmation.CheckBooking(2, actual); List <Booking> expected = new List <Booking>(); expected.Add(Booking.makeBooking(1, 3)); expected.Add(Booking.makeBooking(0, 4)); expected.Add(Booking.makeBooking(2, 3)); expected.Add(Booking.makeBooking(5, 5)); expected.Add(Booking.makeBooking(4, 10)); expected.Add(Booking.makeBooking(10, 10)); expected.Add(Booking.makeBooking(6, 7)); expected.Add(Booking.makeBooking(8, 10)); expected.Add(Booking.makeBooking(8, 9)); foreach (var i in expected) { i.isBooked = true; } //third is false and second last is false expected[2].isBooked = false; expected[expected.Count - 2].isBooked = false; CollectionAssert.AreEqual(expected, actual); }
public async Task <IActionResult> Update([FromRoute] string encryptedReferenceCode, [FromBody] BookingConfirmation bookingConfirmation) { var referenceCode = _urlGenerationService.ReadReferenceCode(encryptedReferenceCode); return(NoContentOrBadRequest(await _bookingConfirmationService.Update(referenceCode, bookingConfirmation))); }
public static void MapResponseToDB(BookingRes value, string SessionID, string BN) { try { HotelBedEntity db = new HotelBedEntity(); BookingConfirmation booking = new BookingConfirmation(); booking.cancellationPolicy = value.booking.modificationPolicies.cancellation.ToString(); booking.clientReference = value.booking.clientReference; booking.CreationData = value.booking.creationDate; booking.CreationUser = value.booking.creationUser; booking.Currency = value.booking.currency; booking.HolderName = value.booking.holder.name; booking.HolderSurName = value.booking.holder.surname; booking.invoiceCompany = value.booking.invoiceCompany.company; booking.invoiceCompanyCode = value.booking.invoiceCompany.code; booking.modificationPolicy = value.booking.modificationPolicies.modification.ToString(); booking.PendingAmount = value.booking.pendingAmount.ToString(); booking.Reference = value.booking.reference; booking.RegistrationNumber = value.booking.invoiceCompany.registrationNumber; booking.SessionID = SessionID; booking.Status = value.booking.status; booking.supplier = value.booking.hotel.supplier.name; booking.Remark = value.booking.hotel.supplier.vatNumber; booking.totalAmount = value.booking.totalNet.ToString(); booking.response = Newtonsoft.Json.JsonConvert.SerializeObject(value.booking); // var hotel = db.SearchHotelDatas.FirstOrDefault(a => a.SessionID == SessionID); booking.BookingNum = BN; db.BookingConfirmations.Add(booking); db.SaveChanges(); foreach (var item in value.booking.hotel.rooms) { foreach (var rate in item.rates) { BookingRoom searchRoom = new BookingRoom(); searchRoom.Adult = rate.adults; searchRoom.rateComments = rate.rateComments; searchRoom.boardCode = rate.boardCode; searchRoom.boardName = rate.boardName; searchRoom.Child = rate.children; searchRoom.hotelMandatory = rate.hotelMandatory.ToString(); searchRoom.Net = rate.net; searchRoom.packaging = rate.packaging.ToString(); searchRoom.paymentType = rate.paymentType; searchRoom.rateClass = rate.rateClass; searchRoom.rooms = rate.rooms; searchRoom.code = item.code; searchRoom.Name = item.name; searchRoom.rooms = rate.rooms; searchRoom.BookingID = booking.ID; searchRoom.SearchId = SessionID; searchRoom.sellingRate = rate.sellingRate; db.BookingRooms.Add(searchRoom); db.SaveChanges(); foreach (var P in item.paxes) { Pax pa = new Pax(); pa.Name = P.name; pa.RoomID = searchRoom.ID; pa.SurName = P.surname; pa.type = P.type; db.Paxes.Add(pa); } foreach (var policy in rate.cancellationPolicies) { PolicyBooking policyBooking = new PolicyBooking(); policyBooking.Amount = policy.amount; policyBooking.BookingRoomID = searchRoom.ID; policyBooking.FromDate = policy.from.ToString(); db.PolicyBookings.Add(policyBooking); } db.SaveChanges(); } } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); throw (ex); } }
public void UpdateMasterData(BookingConfirmation document) { var filter = Builders <BookingConfirmation> .Filter.Eq(s => s.Id, document.Id); collectionBookingConfirmation.ReplaceOne(filter, document); }
private static void CreateBookingItems(BookingProcess bookingProcess, DateTime?bookingdate) { List <BookingProcessItem> list = new List <BookingProcessItem>(); BookingInquiry inquiry = new BookingInquiry(); inquiry.BookingProcessId = bookingProcess.Id; inquiry.CreateDate = bookingdate != null ? (DateTime)bookingdate : DateTime.Now; inquiry.DocumentId = bookingProcess.BookingNumber; inquiry.docType = "BookingInquiry"; manager.AddMasterData(inquiry); var bin = manager.GetBookingInquiryByBookingId(bookingProcess.Id); var bookinginquiry = new BookingProcessItem(); bookinginquiry.BookingProcessTyp = BookingProcessItemTyp.BookingInquiry; bookinginquiry.CreateDate = bookingdate != null ? (DateTime)bookingdate : DateTime.Now; bookinginquiry.DocumentId = bin.Id; bookinginquiry.LastChange = DateTime.Now; bookinginquiry.DocumentNr = bookingProcess.BookingNumber; bookinginquiry.DocumentTitel = "Sync"; bookinginquiry.DocumentStatus = DocumentStatus.Active; ProviderAnnouncement pan = new ProviderAnnouncement(); pan.BookingProcessId = bookingProcess.Id; pan.CreateDate = bookingdate != null ? (DateTime)bookingdate : DateTime.Now; pan.DocumentId = bookingProcess.BookingNumber; pan.docType = "ProviderAnnouncement"; manager.AddMasterData(pan); var p = manager.GetProviderAnnouncementByBookingId(bookingProcess.Id); var providerannouncement = new BookingProcessItem(); providerannouncement.BookingProcessTyp = BookingProcessItemTyp.ProviderAnnouncement; providerannouncement.CreateDate = bookingdate != null ? (DateTime)bookingdate : DateTime.Now; providerannouncement.DocumentId = p.Id; providerannouncement.LastChange = DateTime.Now; providerannouncement.DocumentNr = bookingProcess.BookingNumber; providerannouncement.DocumentTitel = "Sync"; providerannouncement.DocumentStatus = DocumentStatus.Active; ProviderConfirmation providerconfirmation = new ProviderConfirmation(); providerconfirmation.BookingProcessId = bookingProcess.Id; providerconfirmation.CreateDate = bookingdate != null ? ((DateTime)bookingdate).AddDays(1) : DateTime.Now; providerconfirmation.DocumentId = bookingProcess.BookingNumber; providerconfirmation.docType = "ProviderConfirmation"; manager.AddMasterData(providerconfirmation); var pconfirmation = manager.GetProviderConfirmationByBookingId(bookingProcess.Id); var pconf = new BookingProcessItem(); pconf.BookingProcessTyp = BookingProcessItemTyp.ProviderConfirmation; pconf.CreateDate = bookingdate != null ? ((DateTime)bookingdate).AddDays(1) : DateTime.Now; pconf.DocumentId = pconfirmation.Id; pconf.LastChange = DateTime.Now; pconf.DocumentNr = bookingProcess.BookingNumber; pconf.DocumentTitel = "Sync"; pconf.DocumentStatus = DocumentStatus.Active; BookingConfirmation bookingConfirmation = new BookingConfirmation(); bookingConfirmation.BookingProcessId = bookingProcess.Id; bookingConfirmation.CreateDate = bookingdate != null ? ((DateTime)bookingdate).AddDays(1) : DateTime.Now; bookingConfirmation.DocumentId = bookingProcess.BookingNumber; bookingConfirmation.docType = "BookingConfirmation"; manager.AddMasterData(bookingConfirmation); var bconfirmation = manager.GetBookingConfirmationByBookingId(bookingProcess.Id); var bconf = new BookingProcessItem(); bconf.BookingProcessTyp = BookingProcessItemTyp.BookingConfirmation; bconf.CreateDate = bookingdate != null ? ((DateTime)bookingdate).AddDays(1) : DateTime.Now; bconf.DocumentId = bconfirmation.Id; bconf.LastChange = DateTime.Now; bconf.DocumentNr = bookingProcess.BookingNumber; bconf.DocumentTitel = "Sync"; bconf.DocumentStatus = DocumentStatus.Active; CustomerVoucher customerVoucher = new CustomerVoucher(); customerVoucher.BookingProcessId = bookingProcess.Id; customerVoucher.CreateDate = bookingProcess.OfferInfo.CheckIn.AddDays(-20); customerVoucher.DocumentId = bookingProcess.BookingNumber; customerVoucher.docType = "CustomerVoucher"; manager.AddMasterData(customerVoucher); var cvoucher = manager.GetCustomerVoucherByBookingId(bookingProcess.Id); var cvouchera = new BookingProcessItem(); cvouchera.BookingProcessTyp = BookingProcessItemTyp.CustomerVoucher; cvouchera.CreateDate = bookingProcess.OfferInfo.CheckIn.AddDays(-20); cvouchera.DocumentId = cvoucher.Id; cvouchera.LastChange = DateTime.Now; cvouchera.DocumentNr = bookingProcess.BookingNumber; cvouchera.DocumentTitel = "Sync"; cvouchera.DocumentStatus = DocumentStatus.Active; BookingInvoice bookingInvoice = new BookingInvoice(); bookingInvoice.BookingProcessId = bookingProcess.Id; bookingInvoice.CreateDate = bookingProcess.OfferInfo.CheckIn.AddDays(-20); bookingInvoice.DocumentId = bookingProcess.BookingNumber; bookingInvoice.docType = "BookingInvoice"; manager.AddMasterData(bookingInvoice); var bookinvoice = manager.GetBookingInvoiceByBookingId(bookingProcess.Id); var binvoice = new BookingProcessItem(); binvoice.BookingProcessTyp = BookingProcessItemTyp.BookingInvoice; binvoice.CreateDate = bookingProcess.OfferInfo.CheckIn.AddDays(-20); binvoice.DocumentId = bookinvoice.Id; binvoice.LastChange = DateTime.Now; binvoice.DocumentNr = bookingProcess.BookingNumber; binvoice.DocumentTitel = "Sync"; binvoice.DocumentStatus = DocumentStatus.Active; list.AddRange(new BookingProcessItem[] { bookinginquiry, providerannouncement, pconf, bconf, cvouchera, binvoice }); bookingProcess.BookingProcessItemList = list; }