示例#1
0
        //[TestMethod]
        public void GetRoomAvailability()
        {
            var searchHotelModel = InitializeTestingModel.SearchHotelModel("Kuala Lumpur, Malaysia");

            //searchHotelModel.RType = Alphareds.Module.ESBHotelComparisonWebService.ESBHotel.RateType.ConcertPackage;

            searchHotelModel.Result = ESBHotelServiceCall.GetHotelList(searchHotelModel);

            var roomModel = InitializeTestingModel.SearchRoomHotel(searchHotelModel, searchHotelModel.Result.HotelList[0].hotelId);

            //var res = ESBHotelServiceCall.GetRoomAvailability(roomModel, searchHotelModel);
            var res2 = ESBHotelServiceCall.GetRoomAvailability(roomModel, searchHotelModel);
        }
示例#2
0
        //[TestMethod]
        public void GetHotelList()
        {
            // Initialize Value here for testing
            SearchHotelModel searchHotelModel = new SearchHotelModel
            {
                ArrivalDate       = DateTime.Now.AddDays(5),
                DepartureDate     = DateTime.Now.AddDays(10),
                CurrencyCode      = "MYR",
                CustomerIpAddress = "1",
                CustomerUserAgent = "1",
                CustomerSessionId = new Guid().ToString(),
                Destination       = "Ipoh",
                NoOfAdult         = 1,
                NoOfInfant        = 1,
                NoOfRoom          = 1,
                Star = 10,

                SupplierIncluded = new Alphareds.Module.ESBHotelComparisonWebService.ESBHotel.SearchSupplier
                {
                    Expedia = true
                              //Tourplan = true
                              //JacTravel = true
                              //HotelBeds = true
                },

                //totalDays = "3"
            };

            searchHotelModel.ArrivalDate   = new DateTime(2017, DateTime.Now.Month + 1, 23);
            searchHotelModel.DepartureDate = new DateTime(2017, DateTime.Now.Month + 1, 27);

            List <int> hotelId = new List <int>()
            {
                133263,
                66527,
                134811
            };

            List <string> hotelIdString = hotelId.ConvertAll(x => x.ToString());

            // Tourplan Hotel ID
            hotelIdString.Add("KULACASCKULTEST01");

            var ESBresult     = ESBHotelServiceCall.GetHotelList(searchHotelModel);
            var ESB_Id_Result = ESBHotelServiceCall.GetHotelList(searchHotelModel, hotelIdString);

            //throw new Exception("Total Hotel " + ESBresult.HotelList.Length.ToString());
        }
        // GET: Agent/SessionSetter
        public async Task <ActionResult> Hotel(string usevs = "0")
        {
            if (searchModel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            //if (usevs == "1" && searchModel.SearchProgress.Count == 0)
            //{
            //    if (GetCache(searchModel))
            //    {
            //        Core.SetSession(Enumeration.SessionName.SearchRequest, tripid, searchModel);
            //        return Json(true, JsonRequestBehavior.AllowGet);
            //    };
            //}

            ESBHotelServiceCall.Search b2BSearch = new ESBHotelServiceCall.Search(searchModel);
            var supplierReflect = typeof(SearchSupplier).GetProperties();

            if (searchModel.SearchProgress.Count == 0)
            {
                InsertSelectedSearchSupplier(searchModel, supplierReflect, SearchProgress.Progress.New);
            }

            var normalSearch = Task.Run(async() =>
            {
                var _temp = searchModel.DeepCopy();
                _temp.SupplierIncluded = new SearchSupplier
                {
                    Expedia = true,
                };

                return(await ESBHotelServiceCall.GetHotelListAsync(_temp));
            });

            var b2bSearch = Task.Run(async() =>
            {
                return(await b2BSearch.GetB2BHotelListAsync());
            });

            List <Task> searchTask = new List <Task>();

            if (searchTask.Count == 0)
            {
                //searchTask.Add(normalSearch);
                //searchTask.Add(b2bSearch);

                if (searchModel.GetSearchProgress(Suppliers.Expedia) == SearchProgress.Progress.New)
                {
                    searchTask.Add(normalSearch);
                    searchModel.SetSearchProgress(Suppliers.Expedia, SearchProgress.Progress.Searching);
                }

                if (searchModel.SearchProgress.Any(x => x.GetProgress == SearchProgress.Progress.New))
                {
                    searchTask.Add(b2bSearch);
                }
            }

            if (searchTask.Count == 0)
            {
                return(Json(true, JsonRequestBehavior.AllowGet));
            }

            try
            {
                int _tsk      = Task.WaitAny(searchTask.ToArray());
                var modelType = searchTask[_tsk];


                string fullQName = modelType.GetType().FullName;
                if (fullQName == normalSearch.GetType().FullName)
                {
                    searchModel.Result = normalSearch.Result;
                    searchTask.RemoveAt(_tsk);
                    searchModel.SetSearchProgress(Suppliers.Expedia, SearchProgress.Progress.Complete);
                }
                else if (fullQName == b2bSearch.GetType().FullName)
                {
                    searchModel.B2BResult = b2bSearch.Result;
                    searchTask.RemoveAt(_tsk);
                    InsertSelectedSearchSupplier(searchModel, supplierReflect, SearchProgress.Progress.Complete);
                }

                SetCache(searchModel);

                Core.SetSession(Enumeration.SessionName.SearchRequest, tripid, searchModel);

                return(Json(true, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Content(ex.ToString()));
            }
        }