/// <summary>
    /// We get offer related conditions and data related to it.
    /// </summary>
    private void GetOfferRelatedData()
    {
        string tempStr = "";
        int    unitType;

        QuantityUnit  = new List <int>();
        QuantityName  = new List <string>();
        QuantityValue = new List <string>();
        DataTable result1;

        #region Product Condition related data
        var productConditionDetails = m_Offer.GetRegularProductConditionsByOfferId(OfferID).Result;
        if (productConditionDetails.Count == 1 && (double)productConditionDetails.FirstOrDefault().QtyValue != 0.1 && (double)productConditionDetails.FirstOrDefault().QtyValue != 0.01 && (productConditionDetails.FirstOrDefault().QtyUnitType != 4 || (productConditionDetails.FirstOrDefault().QtyUnitType != 1 ? productConditionDetails.FirstOrDefault().QtyUnitType != 1 : true)))
        {
            if (((double)productConditionDetails.FirstOrDefault().QtyValue >= 2 && (double)productConditionDetails.FirstOrDefault().QtyUnitType == 1) || (double)productConditionDetails.FirstOrDefault().QtyUnitType > 1)
            {
                unitType = productConditionDetails.FirstOrDefault().QtyUnitType;
                QuantityUnit.Add(unitType);

                //Get QuantityName
                m_Commondata.QueryStr = "select PhraseID from CPE_UnitTypes where UnitTypeID = " + unitType;
                result1 = m_Commondata.LRT_Select();
                if (result1.Rows.Count > 0)
                {
                    QuantityName.Add(PhraseLib.Lookup((int)result1.Rows[0][0], CurrentUser.AdminUser.LanguageID));
                }

                //Get QuantityValue(s)
                if (productConditionDetails.FirstOrDefault().RegularProductConditionTiers.Count > 0)
                {
                    foreach (var row in productConditionDetails.FirstOrDefault().RegularProductConditionTiers)
                    {
                        tempStr += row.TierLevel + "," + row.Quantity + ";";
                    }
                    for (var i = productConditionDetails.FirstOrDefault().RegularProductConditionTiers.Count; i < objOffer.NumbersOfTier; i++)
                    {
                        tempStr += (i + 1) + ",0;";
                    }
                    QuantityValue.Add(tempStr);
                }
            }
        }
        #endregion

        #region Points Condition related data
        tempStr = "";
        int PhraseID = 0;
        //Get Points Condition related data.
        if (objOffer.PointsProgramConditions != null)
        {
            if (objOffer.PointsProgramConditions.Count == 1)
            {
                var pointsConditionDetails = m_Offer.GetRegularPointConditionsByOfferId(OfferID).Result;
                unitType = (int)CPEUnitTypes.Points;

                //Get QuantityName
                m_Commondata.QueryStr = "select PhraseID from CPE_UnitTypes where UnitTypeID = " + unitType;
                result1 = m_Commondata.LRT_Select();
                if (result1.Rows.Count > 0)
                {
                    PhraseID = (int)result1.Rows[0][0];
                }

                //Get QuantityValue(s)
                if (pointsConditionDetails.FirstOrDefault().RegularPointConditionTiers.Count > 0)
                {
                    foreach (var row in pointsConditionDetails.FirstOrDefault().RegularPointConditionTiers)
                    {
                        if (row.Quantity.ToString() != "1")
                        {
                            tempStr += row.TierLevel.ToString() + "," + row.Quantity.ToString() + ";";
                        }
                    }
                    for (var i = pointsConditionDetails.FirstOrDefault().RegularPointConditionTiers.Count; i < objOffer.NumbersOfTier; i++)
                    {
                        tempStr += (i + 1) + ",0;";
                    }
                    if (tempStr != "")
                    {
                        QuantityValue.Add(tempStr);
                        QuantityUnit.Add(unitType);
                        QuantityName.Add(PhraseLib.Lookup(PhraseID, CurrentUser.AdminUser.LanguageID));
                    }
                }
            }
        }
        #endregion

        #region Proximity Message related data
        AMSResult <List <ProximityMessage> > tempPM = m_ProximityMessageRewardService.GetProximityMessageReward(OfferID, 9);
        if (tempPM.ResultType == AMSResultType.Success)
        {
            PMCount = tempPM.Result.Count;
            if (PMCount == 1)
            {
                PreviousThresholdTypeId = tempPM.Result.FirstOrDefault().ThresholdTypeId;
                if (PreviousThresholdTypeId == (int)CPEUnitTypes.Points && QuantityUnit.Count() == 2)
                {
                    ThresholdTypeId = QuantityUnit[0];
                }
                else
                {
                    ThresholdTypeId = (int)CPEUnitTypes.Points;
                }
            }
            else if (PMCount == 0)
            {
                ThresholdTypeId = QuantityUnit[0];
            }
        }
        else
        {
            ThresholdTypeId = QuantityUnit[0];
        }

        #endregion
    }