public bool IsCancellationPenalty(HotelBookingCancelPolicy objCancelPolicy, string strHotelCode, DateTime dtArrivalDate)
    {
        if (objCancelPolicy.NonRefundable)
            return true;

        DateTime dtCurrentLocal = TZNet.ToLocal(WbsUiHelper.GetTimeZone(strHotelCode), DateTime.UtcNow).Date;
        DateTime dtCancelDeadline = dtArrivalDate.Date;

        dtCancelDeadline = dtCancelDeadline.AddHours(objCancelPolicy.CancelDeadline.Hour);
        dtCancelDeadline = dtCancelDeadline.AddMinutes(objCancelPolicy.CancelDeadline.Minute);
        dtCancelDeadline = dtCancelDeadline.AddHours(objCancelPolicy.CancelDeadlineHours * -1);

        if (dtCurrentLocal > dtCancelDeadline)
            return true;

        return false;
    }
    public string CancellationPolicy(HotelBookingCancelPolicy objCancelPolicy)
    {
        StringBuilder sb = new StringBuilder();

        if (objCancelPolicy.NonRefundable)
        {
            sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyNonrefundable"));
        }

        else
        {
            if (objCancelPolicy.CancelDeadlineHours != 0)
            {
                if (objCancelPolicy.CancelDeadlineHours > 48)
                {
                    sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyNoticeBeforeDayOfArrivalDays"));
                }

                else
                {
                    sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyNoticeBeforeDayOfArrivalHours"));
                }
            }

            else
            {
                sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyNoticeOnDayOfArrival"));
            }

        }

        if (objCancelPolicy.CancelPenaltyNumberNights != 0)
        {
            sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyFeeNumNights"));
        }

        else if (objCancelPolicy.CancelPenaltyPercent != 0)
        {
            sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyFeePercentOfStay"));
        }

        else if (objCancelPolicy.CancelPenaltyAmount != 0)
        {
            sb.Append((String)GetGlobalResourceObject("SiteResources", "CancelPolicyFeeFixedAmount"));
        }

        string strPolicy = sb.ToString();

        strPolicy = strPolicy.Replace("{cancel_deadline_hours}", objCancelPolicy.CancelDeadlineHours.ToString());
        strPolicy = strPolicy.Replace("{cancel_deadline_days}", ((int)(objCancelPolicy.CancelDeadlineHours / 24)).ToString());
        strPolicy = strPolicy.Replace("{cancel_deadline_time}", objCancelPolicy.CancelDeadline.ToString("h:mmtt"));
        strPolicy = strPolicy.Replace("{cancel_deadline_time_24h}", objCancelPolicy.CancelDeadline.ToString("HH:mm"));
        strPolicy = strPolicy.Replace("{cancel_penalty_number_nights}", objCancelPolicy.CancelPenaltyNumberNights.ToString());
        strPolicy = strPolicy.Replace("{cancel_penalty_percent}", objCancelPolicy.CancelPenaltyPercent.ToString("F2"));
        strPolicy = strPolicy.Replace("{cancel_penalty_amount}", objCancelPolicy.CancelPenaltyAmount.ToString(this.CurrencyFormat()));
        strPolicy = strPolicy.Replace("{cancel_penalty_currency}", objCancelPolicy.CancelPenaltyCurrencyCode);

        return strPolicy;
    }