// public void SaveSearchData(SearchData searchData) { try { SearchRepo repo = new SearchRepo(); repo.SaveSearchData(searchData); }catch (Exception ex) { throw ex; } }
public void MovieSearch() { using (var httpTest = new HttpTest()) { var search = new SearchRepo(); var result = search.GetMovieSearch("Guardians"); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(Task <List <MovieSearch> >)); httpTest.ShouldHaveCalled("http://www.omdbapi.com").WithVerb(HttpMethod.Get); } }
public void SaveSearchResult(List <HotelSearchResult> hotelSearchResults, string sID) { try { SearchRepo repo = new SearchRepo(); repo.SaveSearchResult(hotelSearchResults, sID); } catch (Exception ex) { throw ex; } }
// Hotel Rooms HotelSearchRoom public HotelSearchRoom GetAvailableRoom(string SessionId, int ResIndex, string HotelCode, string SID) { //var roomexists= //if (true) //{ //} var Result = RoomAvailabiltyService.Availabilty(SessionId, ResIndex, HotelCode, SID); //map tbo rooms rsp to general res HotelSearchRoom hotelSearchRoom = RoomMapper.MapTboRoomRspTogenrl(Result, SID); // apply business rules on rooms //ApplyRoomsBusiness(rooms); //save rooms in DB SearchRepo manager = new SearchRepo(); manager.SaveSearchRooms(hotelSearchRoom.Packages, SID, HotelCode); var Res = manager.GetTBOHotelDetails(hotelSearchRoom, HotelCode, SID); // return Res; return(hotelSearchRoom); }
private async Task <ActionResult> LoadDefaultService(SearchOptions searchOptions) { ActionResult result = null; try { Log(LogLevel.Trace, "(Checking for default service", searchOptions); var defaultServiceId = GetDefaultServiceId(); if (defaultServiceId == 0) { return(null); } Log(LogLevel.Trace, "Start loading default service {id}", searchOptions, defaultServiceId); var results = await SearchRepo.GetProducts(new[] { defaultServiceId }, searchOptions); Log(LogLevel.Trace, "End loading default service {id}", searchOptions, defaultServiceId); if (results.Length == 0) { var message = $"Service {defaultServiceId} is not found"; LogException(null, message, searchOptions); return(NotFound(message)); } Services = new [] { results[0] }; } catch (Exception ex) { var message = $"Exception occurs while using Elastic Search: {ex.Message}"; LogException(ex, message, searchOptions); result = BadRequest(message); } return(result); }
/// <summary> /// /// </summary> /// <param name="availability"></param> /// <param name="Curr">user selected curency</param> /// <param name="src"></param> /// <returns></returns> public static CheckAvailabilityResult checkAvailabilityManager(Hotels.Common.Models.AvailabilityReq availability, string Curr, string src) { CheckAvailabilityResult availabilityResult = new CheckAvailabilityResult(); //try //{ CurrencyManager currencyManager = new CurrencyManager(); SalesRulesManager CancellationChargeManager = new SalesRulesManager(); CheckAvailabilityRepo.SaveRequestToDB(availability); double TotalCost = 0; double ProviderExcahngeRate = 0; double newcost = 0; var SearchData = SearchRepo.GetSearchDataBySession(availability.Sid); int duration = SearchData.duration ?? default(int);//Convert.ToInt32((SearchData.dateTo - SearchData.dateFrom).Value.TotalDays); var BaseCur = ConfigurationSettings.AppSettings["BaseCur"]; if (SearchData != null) { availabilityResult = GetRoomsFromProviders(availability, Convert.ToDateTime(SearchData.dateFrom).ToString("yyyy-MM-dd"), duration.ToString()); if (availabilityResult == null) { return(null); } if (availability.PID == "5") { ProviderExcahngeRate = currencyManager.GetCurrencyConversion(Curr, BaseCur, availability.Sid); } if (availability.PID == "4") { // get Hotel Beds provider Curency var HotelBedsCur = ConfigurationSettings.AppSettings["HotelBedsCurency"]; ProviderExcahngeRate = currencyManager.GetCurrencyConversion(HotelBedsCur, BaseCur, availability.Sid); ////ProviderExcahngeRate = currencyManager.GetCurrencyConversion("EUR", BaseCur);availabilityResult.ProviderCur } else if (availability.PID == "2") { ProviderExcahngeRate = currencyManager.GetCurrencyConversion(availabilityResult.ProviderCur, BaseCur, availability.Sid); ////providerexcahngerate = currencymanager.getcurrencyconversion("usd", basecur, availability.sid); } if (Curr == null) { Curr = SearchData.currency; } double ExcahngeRate = currencyManager.GetCurrencyConversion(BaseCur, Curr, availability.Sid); double MarkUpRate = currencyManager.GetCurrencyConversion(BaseCur, SearchData.currency, availability.Sid); var roomsRules = AvailabiltyRooms.getRoomsRules(availability.HotelCode, availability.Sid, availability.PID); if (roomsRules == null) { return(null); } AppliedSalesRule AppliedCancellationMarkup = CancellationChargeManager.ApplySalesRules("Markup"); for (int i = 0; i < availabilityResult.Result.Count; i++) { var roomData = roomsRules.FirstOrDefault(a => a.RoomCode == availabilityResult.Result[i].RoomIndex.ToString()); availabilityResult.Result[i].RatePerNight = ((availabilityResult.Result[i].CostPrice * ProviderExcahngeRate / duration) + (roomData.MarkupVal.Value / MarkUpRate) - (roomData.DiscountVal.Value / MarkUpRate)) * ExcahngeRate; availabilityResult.Result[i].TotalSellPrice = Math.Round(availabilityResult.Result[i].RatePerNight * duration, 3); TotalCost += availabilityResult.Result[i].CostPrice; foreach (var item in availabilityResult.Result[i].cancellationRules) //// { item.Price = Math.Round(((item.Cost * ProviderExcahngeRate) + AppliedCancellationMarkup.Value) * ExcahngeRate, 3); item.CanellationRuleText = SearchData.language.ToLower() == "en" ? Math.Round(((item.Cost * ProviderExcahngeRate) + AppliedCancellationMarkup.Value) * ExcahngeRate, 3) + " " + SearchData.currency + " of the booking amount " + item.FromDate : item.FromDate + " TO " + "" + SearchData.currency + Math.Round(((item.Cost * ProviderExcahngeRate) + AppliedCancellationMarkup.Value) * ExcahngeRate, 3); } } newcost = availability.TotalCost; //availabilityResult.TotalCost = TotalCost; } CheckAvailabilityRepo.SaveResponseToDB(availabilityResult, newcost, availability, SearchData.currency, src); return(availabilityResult); //} //catch (Exception ex) //{ // LoggingHelper.WriteToFile("AvailabilityController/Errors/", "AvailabilityController" + "providerManagement" + availability.Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); // return null; //} }
//map tbo rooms rsp to general res public static HotelSearchRoom MapTboRoomRspTogenrl(HotelRoomAvailabilityResponse response, string SID) { if (response.HotelRooms == null) { return(null); } //get ADT CHD NO SearchRepo manager = new SearchRepo(); var rooms = manager.GetADTCHDNoBySid(SID); CurrencyManager currencyManager = new CurrencyManager(); SalesRulesManager ServiceChargeManager = new SalesRulesManager(); SalesRulesManager CancellationChargeManager = new SalesRulesManager(); var BaseCur = ConfigurationSettings.AppSettings["BaseCur"]; double ProviderExcahngeRate = currencyManager.GetCurrencyConversion(response.HotelRooms[0].RoomRate.Currency, BaseCur, SID); double ExcahngeRate = currencyManager.GetCurrencyConversion(BaseCur, response.HotelRooms[0].RoomRate.Currency, SID); AppliedSalesRule AppliedCancellationMarkup = CancellationChargeManager.ApplySalesRules("Markup"); // //options for booking List <OptionsForBooking> options = new List <OptionsForBooking>(); foreach (var item in response.OptionsForBooking.RoomCombination) { options.Add(new OptionsForBooking { RoomIndex = item.RoomIndex }); } List <RoomResult> roomResults = new List <RoomResult>(); foreach (var item in response.HotelRooms.ToList()) { //supplements List <Hotels.Common.Models.RoomResult.Supplement> supplements = new List <Hotels.Common.Models.RoomResult.Supplement>(); if (item.Supplements != null) { foreach (var sup in item.Supplements) { supplements.Add(new Hotels.Common.Models.RoomResult.Supplement { Price = sup.Price, SuppChargeType = sup.SuppChargeType.ToString(), SuppID = sup.SuppID, SuppIsSelected = sup.SuppIsMandatory, Cur = sup.CurrencyCode, }); } } List <CancellationRule> cancellationRules = new List <CancellationRule>(); foreach (var cancel in item.CancelPolicies.CancelPolicy) { double costToSave = 0; string Cur = ""; //Enum.TryParse(cancel.ChargeType.ToString(), out CancellationChargeTypeForHotel Type); if (cancel.ChargeType == CancellationChargeTypeForHotel.Percentage) { costToSave = (double)cancel.CancellationCharge; Cur = "%"; } else { Cur = "KWD"; costToSave = (double)cancel.CancellationCharge * ProviderExcahngeRate; //Math.Round((double)cancel.CancellationCharge * ProviderExcahngeRate, 3); } cancellationRules.Add(new CancellationRule { Price = costToSave, Curency = Cur, FromDate = cancel.FromDate, ToDate = cancel.ToDate, //Cost = (double)cancel.CancellationCharge, Cost = (double)cancel.CancellationCharge, ChargeType = cancel.ChargeType.ToString(), }); } //foreach (var PaxNo in rooms) //{ roomResults.Add(new RoomResult { RoomIndex = item.RoomIndex, RoomType = item.RoomTypeName + " " + item?.RoomPromtion, //RoomCode = item.RoomIndex, RoomCode = item.RoomTypeCode, RoomReference = item.RatePlanCode, //Adult = rooms.FirstOrDefault(ad=>ad.roomNo == item.RoomIndex).adultNo ?? default(int), //Child = rooms.FirstOrDefault(ad => ad.roomNo == item.RoomIndex).childernNo ?? default(int), // RatePerNight = ((double)item.RoomRate.TotalFare * ProviderExcahngeRate ) * ExcahngeRate, //TotalSellPrice = Math.Round(((double)item.RoomRate.TotalFare * ProviderExcahngeRate) * ExcahngeRate, 3), //tax rateType = item.RoomRate.RoomTax.ToString(), //base rateClass = item.RoomRate.RoomFare.ToString(), //RatePerNight = (double)item.RoomRate.DayRates[0].BaseFare, CostPrice = (double)item.RoomRate.TotalFare, Tax = item.RoomRate.RoomTax, RoomMeal = item.MealType, //sell curency kwd Curency = BaseCur, TotalSellPrice = Math.Round((double)item.RoomRate.TotalFare * ProviderExcahngeRate, 3), Supplements = supplements, cancellationRules = cancellationRules, Images = item?.RoomAdditionalInfo?.ImageURLs.ToList(), Amenities = item.Amenities, Inclusion = item.Inclusion }); //} } HotelSearchRoom hotelSearchRoom = new HotelSearchRoom(); int PkageNO = 0; foreach (var item in options) { PkageNO++; SearchRoomData roomresult = new SearchRoomData(); roomresult = null; SeparatedRoom srts = new SeparatedRoom(); for (int i = 0; i < item.RoomIndex.Count(); i++) { var resultsR = roomResults.Where(res => res.RoomIndex == item.RoomIndex[i]).FirstOrDefault(); resultsR.PackageNO = PkageNO; srts.RoomResults.Add(resultsR); } hotelSearchRoom.rooms.Add(srts); } SeparatedRoom separatedRoom = new SeparatedRoom { OptionsForBookings = options, RoomResults = roomResults }; var singles = roomResults.GroupBy(n => n.RoomCode).ToList() //.Where(g => g.Count() == 1) .Select(g => g.First()).ToList(); hotelSearchRoom.Packages = singles; return(hotelSearchRoom); }