public static async Task <BookingRes> BookingRoomsService(BookingReq value, string SessionID) { try { var client = new HttpClient(); BookingRes DataBooking = new BookingRes(); const string apiKey = "c2yc2s4vhhxqkhssr4p5jma6"; const string Secret = "UeF5JXgdqH"; string url = ""; // 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/BookingRequests", "BookingRequest_" + SessionID, "BookingRequest", Newtonsoft.Json.JsonConvert.SerializeObject(value)); if (value.paymentData == null) { url = "https://api.test.hotelbeds.com/hotel-api/1.0/bookings"; } else { url = "https://api-secure.test.hotelbeds.com/hotel-api/1.0/bookings"; } client.DefaultRequestHeaders.Add("Api-Key", "c2yc2s4vhhxqkhssr4p5jma6"); client.DefaultRequestHeaders.Add("X-Signature", signature); var response = client.PostAsJsonAsync(url, value).Result; if (response.IsSuccessStatusCode) { DataBooking = await response.Content.ReadAsAsync <BookingRes>(); LogData.WriteToFile("c:/HotelsB2C/Logs/HBLogs/BookingResponses", "BookingResponses_" + SessionID, "BookingResponses", Newtonsoft.Json.JsonConvert.SerializeObject(DataBooking)); return(DataBooking); } else { LogData.WriteToFile("c:/HotelsB2C/Logs/HBLogs/BookingResponses", "BookingResponses_" + SessionID, "BookingResponses", Newtonsoft.Json.JsonConvert.SerializeObject(response)); return(null); } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LogData.WriteExceptionToFile("c:/HotelsB2C/Logs/HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); return(null); } }
public async Task <BookingRes> AcceptBooking(BookingReq request) { try { DynamicParameters parameters = new DynamicParameters(); parameters.Add("@BookingId", request.BookingId); parameters.Add("@DriverId", request.DriverId); return(await SqlMapper.QueryFirstAsync <BookingRes>( cnn : connection, sql : "sp_AcceptBooking", param : parameters, commandType : CommandType.StoredProcedure)); } catch (Exception ex) { throw ex; } }
public async Task <BookingRes> DropedOffCustomer(BookingReq request) { try { if (request != null) { return(await driverRepository.DropedOffCustomer(request)); } return(new BookingRes() { BookingId = "", Message = "Có lỗi xảy ra, xin hãy liên hệ với tổng đài để khắc phục" }); } catch (Exception ex) { throw ex; } }
public static async Task <Models.BookingStatus> BookingRooms(BookingReq value, string SessionID, string BN) { BookingRes hotels = new BookingRes(); BookingStatus booking = new BookingStatus(); try { //yyyy-mm-dd BookingMapping.MapRequestToDB(value, SessionID, BN); hotels = await BookingService.BookingRoomsService(value, SessionID); if (hotels == null) { booking.status = 2; return(booking); } BookingMapping.MapResponseToDB(hotels, SessionID, BN); booking.status = 0; booking.booking = hotels.booking; return(booking); } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); if (hotels != null) { booking.status = 1; booking.booking = hotels.booking; return(booking); } booking.status = 2; booking.booking = null; return(booking); } }
public static async Task <Models.Booking> BookingRooms(BookingReq value, string SessionID) { try { //yyyy-mm-dd BookingMapping.MapRequestToDB(value, SessionID); var hotels = await BookingService.BookingRoomsService(value, SessionID); if (hotels == null) { return(new Models.Booking()); } BookingMapping.MapResponseToDB(hotels, SessionID); return(hotels.booking); } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LogData.WriteToFile("c:/HotelsB2C/Logs/HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); return(new Models.Booking()); } }
public SingleResponse UpdateBooking(BookingReq req) { //Khởi tạo var result = new SingleResponse(); Booking booking = new Booking(); //Gán booking.BookingID = req.BookingID; booking.BookingDate = req.BookingDate; booking.BookingStatus = req.BookingStatus; booking.CustomerName = req.CustomerName; booking.CustomerPaymentMethods = req.CustomerPaymentMethods; booking.CheckInDate = req.CheckInDate; booking.CheckOutDate = req.CheckOutDate; booking.TotalPrice = req.TotalPrice; booking.CustomerID = req.CustomerID; booking.EmployeeID = req.EmployeeID; booking.BookingNote = req.BookingNote; //Trả về result = base.Update(booking); //base gọi lớp cha result.Data = booking; return(result); }
public static void MapRequestToDB(BookingReq value, string SessionID, string BN) { try { HotelBedEntity db = new HotelBedEntity(); foreach (var item in value.rooms) { BookingRequest booking = new BookingRequest(); booking.ClientReference = value.clientReference; booking.HolderName = value.holder.name; booking.SurName = value.holder.surname; booking.session = SessionID; booking.BookingNum = BN; booking.Roomkey = item.rateKey; db.BookingRequests.Add(booking); db.SaveChanges(); foreach (var p in item.paxes) { RequestPAX requestPAX = new RequestPAX(); requestPAX.BookingID = booking.id; requestPAX.Name = p.name; requestPAX.RID = p.roomId; requestPAX.SurName = p.surname; requestPAX.Type = p.type; db.RequestPAXES.Add(requestPAX); } db.SaveChanges(); } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); } }
public static BookingReq prepareObject(ConfirmData data) { BookingReq booking = new BookingReq(); var FullName = data.hotelsBooking.Pax_Name.Split(' '); booking.holder = new Holder(); booking.rooms = new List <RoomB>(); booking.holder.name = FullName[0]; booking.holder.surname = FullName[1]; booking.paymentData = null; booking.clientReference = data.hotelsBooking.Booking_No; for (int i = 0; i < data.Rooms.Count; i++) { RoomB room = new RoomB(); room.paxes = new List <PaxB>(); room.rateKey = data.Rooms[i].Rate; foreach (var item in data.Rooms[i].bookingPaxes) { PaxB pax = new PaxB(); pax.roomId = "1"; pax.name = item.First_name; pax.surname = item.Last_Name; if (item.Pax_Type.ToLower() == "adult") { pax.type = "AD"; } else { pax.type = "CH"; } room.paxes.Add(pax); } booking.rooms.Add(room); } return(booking); }
public async Task <IActionResult> PickedUpCustomer(BookingReq request) { return(Ok(await driverService.PickedUpCustomer(request))); }
public async Task <IActionResult> DropedOffCustomer(BookingReq request) { return(Ok(await driverService.DropedOffCustomer(request))); }
public async Task <IActionResult> AcceptBooking(BookingReq request) { return(Ok(await driverService.AcceptBooking(request))); }
public IActionResult UpdateBooking([FromBody] BookingReq req) { var result = _svc.UpdateBooking(req); return(Ok(result)); }
public static async Task <BookingRes> BookingRoomsService(BookingReq value, string SessionID) { try { var client = new HttpClient(); BookingRes DataBooking = new BookingRes(); string apiKey = ConfigurationSettings.AppSettings["HBToken"]; string Secret = ConfigurationSettings.AppSettings["HBSecret"]; if (apiKey == null) { apiKey = "c2yc2s4vhhxqkhssr4p5jma6"; } if (Secret == null) { Secret = "UeF5JXgdqH"; } string url = ""; // 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("-", ""); } string path = ConfigurationSettings.AppSettings["HBBookingEndPonit"]; LoggingHelper.WriteToFile("HBLogs/BookingRequests", "BookingRequest_" + SessionID, "BookingRequest", Newtonsoft.Json.JsonConvert.SerializeObject(value)); if (value.paymentData == null) { // url = "https://api.test.hotelbeds.com/hotel-api/1.0/bookings"; url = path; } else { path = ConfigurationSettings.AppSettings["HBBookingPayEndPonit"]; url = path; // url = "https://api-secure.test.hotelbeds.com/hotel-api/1.0/bookings"; } client.DefaultRequestHeaders.Add("Api-Key", apiKey); client.DefaultRequestHeaders.Add("X-Signature", signature); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var response = client.PostAsJsonAsync(url, value).Result; stopWatch.Stop(); TimeSpan ts1 = stopWatch.Elapsed; if (response.IsSuccessStatusCode) { DataBooking = await response.Content.ReadAsAsync <BookingRes>(); LoggingHelper.WriteToFile("HBLogs/BookingResponses", "BookingResponses_" + SessionID, "BookingResponses", "response time " + ts1.ToString() + Newtonsoft.Json.JsonConvert.SerializeObject(DataBooking)); return(DataBooking); } else { LoggingHelper.WriteToFile("HBLogs/BookingResponses", "BookingResponses_" + SessionID, "BookingResponses", "response time " + ts1.ToString() + Newtonsoft.Json.JsonConvert.SerializeObject(response)); return(null); } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); throw ex; } }