Exemple #1
0
        /// <summary>
        /// Get rates amount
        /// </summary>
        /// <param name="dailyRate">daily RateCache</param>
        /// <param name="numberOfGuests">the number of guests for the rate plan.</param>
        /// <returns>RateAmountMessageType</returns>
        private RateAmountMessageType GetRatesAmount(RateCache dailyRate, int numberOfGuests)
        {
            if (dailyRate.MinStay == 0)
            {
                Logger.LogError(string.Format("Minimum booking duration is invalid. It is set as 0 for room type id {0}, date {1} ", dailyRate.ProductId, dailyRate.Date));
            }

            var rateAmountMessage = new RateAmountMessageType();

            rateAmountMessage.StatusApplicationControl = new StatusApplicationControlType();
            rateAmountMessage.StatusApplicationControl.InvTypeCode = dailyRate.RoomTypeId.ToString();
            rateAmountMessage.StatusApplicationControl.RatePlanCode = dailyRate.RatePlanId.ToString();
            rateAmountMessage.StatusApplicationControl.Start = dailyRate.Date.ToString(Formats.UNIVERSAL_SHORT_DATE);
            rateAmountMessage.StatusApplicationControl.End = dailyRate.Date.ToString(Formats.UNIVERSAL_SHORT_DATE);

            rateAmountMessage.Rates = new RateAmountMessageTypeRate[1];
            rateAmountMessage.Rates[0] = new RateAmountMessageTypeRate();
            rateAmountMessage.Rates[0].MinLOS = dailyRate.MinStay.ToString();
            rateAmountMessage.Rates[0].BaseByGuestAmts = new RateUploadTypeBaseByGuestAmt[1];
            rateAmountMessage.Rates[0].BaseByGuestAmts[0] = new RateUploadTypeBaseByGuestAmt();
            rateAmountMessage.Rates[0].BaseByGuestAmts[0].AmountAfterTax = dailyRate.Rate;
            rateAmountMessage.Rates[0].BaseByGuestAmts[0].AmountAfterTaxSpecified = true;
            rateAmountMessage.Rates[0].BaseByGuestAmts[0].DecimalPlaces = "0";
            rateAmountMessage.Rates[0].BaseByGuestAmts[0].CurrencyCode = dailyRate.CurrencyCode;
            rateAmountMessage.Rates[0].BaseByGuestAmts[0].NumberOfGuests = numberOfGuests.ToString();

            return rateAmountMessage;
        }
Exemple #2
0
        /// <summary>
        /// Compare two reate amount type
        /// </summary>
        /// <param name="lastRateAmount">RateAmountMessageType</param>
        /// <param name="rateAmount">RateAmountMessageType</param>
        /// <returns>True if both type are equal</returns>
        private static bool CompareRateAmountValues(RateAmountMessageType lastRateAmount, RateAmountMessageType rateAmount)
        {
            if (lastRateAmount == null || lastRateAmount.Rates == null || rateAmount.Rates == null || !lastRateAmount.Rates.Any() || !rateAmount.Rates.Any())
            {
                return false;
            }

         
            return  lastRateAmount.StatusApplicationControl.InvTypeCode == rateAmount.StatusApplicationControl.InvTypeCode &&
                    lastRateAmount.StatusApplicationControl.RatePlanCode == rateAmount.StatusApplicationControl.RatePlanCode &&
                    lastRateAmount.Rates[0].BaseByGuestAmts[0].AmountAfterTax == rateAmount.Rates[0].BaseByGuestAmts[0].AmountAfterTax &&
                    lastRateAmount.Rates[0].BaseByGuestAmts[0].DecimalPlaces == rateAmount.Rates[0].BaseByGuestAmts[0].DecimalPlaces &&
                    lastRateAmount.Rates[0].MinLOS == rateAmount.Rates[0].MinLOS;
        }