public void SaveCancellationBookingData(CancellationBookingData cancellation, string BN, string reference) { HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities(); CancellationBooking cancel = new CancellationBooking(); cancel.BookingCurrency = cancellation.booking.currency; cancel.BookingNum = BN; cancel.BookingReference = reference; cancel.BookingTotalNet = cancellation.booking.totalNet.ToString(); cancel.CancellationAmount = cancellation.booking.hotel.cancellationAmount.ToString(); cancel.cancellationFlag = cancellation.booking.modificationPolicies.cancellation.ToString(); cancel.CancellationReference = cancellation.booking.cancellationReference; cancel.Cancelstatus = cancellation.booking.status; cancel.checkIn = cancellation.booking.hotel.checkIn; cancel.checkOut = cancellation.booking.hotel.checkOut; cancel.ClientReference = cancellation.booking.clientReference; cancel.CompanyregistrationNum = cancellation.booking.invoiceCompany.registrationNumber; cancel.creationDate = cancellation.booking.creationDate; cancel.creationUser = cancellation.booking.creationUser; cancel.Currency = cancellation.booking.hotel.currency; cancel.HolderFirstName = cancellation.booking.holder.name; cancel.HolderLastName = cancellation.booking.holder.surname; cancel.HotelCode = cancellation.booking.hotel.code.ToString(); cancel.InvoiceCompany = cancellation.booking.invoiceCompany.company; cancel.InvoiceCompanyCode = cancellation.booking.invoiceCompany.code; cancel.Reference = cancellation.booking.reference; cancel.SupplierName = cancellation.booking.hotel.supplier.name; cancel.totalNet = cancellation.booking.hotel.totalNet; cancel.VatNumber = cancellation.booking.hotel.supplier.vatNumber; hotelBookingDB.CancellationBookings.Add(cancel); foreach (var item in cancellation.booking.hotel.rooms) { foreach (var r in item.rates) { CancellationRoom room = new CancellationRoom(); room.adults = r.adults.ToString(); room.boardName = r.boardName; room.BookingNum = BN; room.children = r.children.ToString(); room.code = item.id.ToString(); room.net = r.net.ToString(); room.rateClass = r.rateClass; room.reference = reference; room.RoomName = item.name; room.RoomStatus = item.status; room.supplierReference = item.supplierReference; hotelBookingDB.CancellationRooms.Add(room); } } hotelBookingDB.SaveChanges(); }
public static async Task <CancellationBookingData> CancelService(string Reference, string BN) { try { var client = new HttpClient(); var Data = new CancellationBookingData(); string apiKey = ConfigurationSettings.AppSettings["HBToken"]; string Secret = ConfigurationSettings.AppSettings["HBSecret"]; if (apiKey == null) { apiKey = "c2yc2s4vhhxqkhssr4p5jma6"; } if (Secret == null) { Secret = "UeF5JXgdqH"; } // apiKey = "c2yc2s4vhhxqkhssr4p5jma6"; // Secret = "UeF5JXgdqH"; // Compute the signature to be used in the API call (combined key + secret + timestamp in seconds) string signature; using (var sha = SHA256.Create()) { long ts = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds / 1000; Console.WriteLine("Timestamp: " + ts); var computedHash = sha.ComputeHash(Encoding.UTF8.GetBytes(apiKey + Secret + ts)); signature = BitConverter.ToString(computedHash).Replace("-", ""); } // LogData.WriteToFile("c:/HotelsB2C/Logs/HBLogs/AvailabilityRequests", "AvailabilityRequest_" + SessionID, "AvailabilityRequest", Newtonsoft.Json.JsonConvert.SerializeObject(value)); string path = ConfigurationSettings.AppSettings["HBCancelationEndPonit"]; var url = path + Reference + "?cancellationFlag=CANCELLATION"; client.DefaultRequestHeaders.Add("Api-Key", apiKey); client.DefaultRequestHeaders.Add("X-Signature", signature); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var response = client.DeleteAsync(url).Result; stopWatch.Stop(); TimeSpan ts1 = stopWatch.Elapsed; if (response.IsSuccessStatusCode) { Data = await response.Content.ReadAsAsync <CancellationBookingData>(); LoggingHelper.WriteToFile("HBLogs/CancellationBooking", "CancellationBookingResponses_" + BN, "CancellationBookingResponses", "response time " + ts1.ToString() + Newtonsoft.Json.JsonConvert.SerializeObject(Data)); return(Data); } else { LoggingHelper.WriteToFile("HBLogs/CancellationBookingResponses", "CancellationBookingResponses_" + BN, "CancellationBookingResponses", "response time " + ts1.ToString() + Newtonsoft.Json.JsonConvert.SerializeObject(response)); return(null); } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/CancellationBookingException", "CancellationBookingException_" + BN, "ACancellationBookingException", requestData); return(null); } }