public static CheckAvailabilityResult GetCheckAvailabilityResult(Hotels.Common.Models.AvailabilityReq availability, string curr, string src) { CheckAvailabilityResult availabilityResult = new CheckAvailabilityResult(); availabilityResult = AvailabilityManager.checkAvailabilityManager(availability, curr, src); return(availabilityResult); }
/// <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; //} }
public AvailabilityValidModel() { availabilityReq = new AvailabilityReq(); }