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);
            }
        }
Beispiel #2
0
 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);
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        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)));
 }
Beispiel #12
0
        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;
            }
        }