/// <summary> /// Updates Proximity Reward based on the number of tiers set. /// </summary> private void UpdateProximityReward() { if (objOffer.NumbersOfTier < objProximityMessage.ProximityMessageTiers.Count) { List <ProximityMessageTier> tempPMTier = new List <ProximityMessageTier>(); for (int i = 0; i < objOffer.NumbersOfTier; i++) { tempPMTier.Add(objProximityMessage.ProximityMessageTiers[i]); } objProximityMessage.ProximityMessageTiers = tempPMTier; m_ProximityMessageRewardService.CreateUpdateProximityMessageReward(objProximityMessage, OfferID, 9, RewardOptionID); } else if (objOffer.NumbersOfTier > objProximityMessage.ProximityMessageTiers.Count) { int i = objProximityMessage.ProximityMessageTiers.Count; ProximityMessageTier tempProximityTierData; for (; i < objOffer.NumbersOfTier; i++) { tempProximityTierData = new ProximityMessageTier(); tempProximityTierData.TierLevel = i + 1; tempProximityTierData.PMTierTranslations = new List <ProximityMessageTierTranslation>(); tempProximityTierData.Message = ""; tempProximityTierData.TriggerValue = Decimal.Parse("0"); objProximityMessage.ProximityMessageTiers.Add(tempProximityTierData); } } }
/// <summary> /// This method is called whenever new tier is created to display /// textarea for description. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void BindProximityMsgDesc(object sender, RepeaterItemEventArgs e) { if (IsMultiLanguageEnabled) { Repeater childRepeater = (Repeater)e.Item.FindControl("repProximityMsgDesc"); ProximityMessageTier tempProximityTier = (ProximityMessageTier)e.Item.DataItem; if (tempProximityTier.PMTierTranslations.Count != Languages.Count) { ProximityMessageTierTranslation tempPMTierTranslation; foreach (var lan in Languages) { if (!tempProximityTier.PMTierTranslations.Exists(l => l.LanguageId == lan.LanguageID)) { tempPMTierTranslation = new ProximityMessageTierTranslation(); tempPMTierTranslation.LanguageId = lan.LanguageID; tempPMTierTranslation.Message = ""; tempProximityTier.PMTierTranslations.Add(tempPMTierTranslation); } } } childRepeater.DataSource = tempProximityTier.PMTierTranslations; childRepeater.DataBind(); } else { List <ProximityMessageTier> tempProximityTier = new List <ProximityMessageTier>(); Repeater childRepeater = (Repeater)e.Item.FindControl("repProximityMsgDesc"); tempProximityTier.Add((ProximityMessageTier)e.Item.DataItem); childRepeater.DataSource = tempProximityTier; childRepeater.DataBind(); } }
/// <summary> /// Initializes or updates PM related data. /// </summary> private void SetProximityMessageForLoad() { if (objProximityMessage != null) { } else { objProximityMessage = new CMS.AMS.Models.ProximityMessage(); objProximityMessage.Id = 0; objProximityMessage.RewardID = RewardID; objProximityMessage.RewardOptionPhase = Phase; objProximityMessage.RewardTypeID = (int)DELIVERABLE_TYPES.PROXIMITY_MESSAGE; objProximityMessage.ProximityMessageTiers = new List <ProximityMessageTier>(); ProximityMessageTier tempProxMessgTier; for (int i = 1; i <= objOffer.NumbersOfTier; i++) { tempProxMessgTier = new ProximityMessageTier(); tempProxMessgTier.TierLevel = i; tempProxMessgTier.PMTierTranslations = new List <ProximityMessageTierTranslation>(); if (IsMultiLanguageEnabled) { ProximityMessageTierTranslation tempPMTierTranslation; foreach (var j in SystemSettings.GetAllActiveLanguages(Engines.UE)) { tempPMTierTranslation = new ProximityMessageTierTranslation(); tempPMTierTranslation.ProximityMessageTierId = tempProxMessgTier.Id; tempPMTierTranslation.LanguageId = j.LanguageID; tempPMTierTranslation.Message = ""; tempProxMessgTier.PMTierTranslations.Add(tempPMTierTranslation); } } objProximityMessage.ProximityMessageTiers.Add(tempProxMessgTier); } } repProximityMsg.DataSource = objProximityMessage.ProximityMessageTiers; repProximityMsg.DataBind(); }
/// <summary> /// Updates the Proximity Reward object and saves the data. /// </summary> private void UpdateObjectAndSave() { bool IsNewPMR = (objProximityMessage.Id == 0); objProximityMessage.ProximityMessageTiers.Clear(); objProximityMessage.RewardOptionPhase = Phase; objProximityMessage.RewardID = IsNewPMR ? 0 : RewardID; objProximityMessage.Required = false; objProximityMessage.RewardTypeID = (int)DELIVERABLE_TYPES.PROXIMITY_MESSAGE; objProximityMessage.ThresholdTypeId = Int32.Parse(ddlMessageType.SelectedValue); ProximityMessageTier tempProximityTierData; foreach (RepeaterItem pmItem in repProximityMsg.Items) { tempProximityTierData = new ProximityMessageTier(); TextBox tempAwayDataTextbox = pmItem.FindControl("awaydata") as TextBox; TextBox tempMessage = pmItem.FindControl("prmessage") as TextBox; tempProximityTierData.TriggerValue = tempAwayDataTextbox != null?Decimal.Parse(tempAwayDataTextbox.Text, CultureInfo.InvariantCulture) : Decimal.Parse("0"); tempProximityTierData.TierLevel = pmItem.ItemIndex + 1; if (IsMultiLanguageEnabled) { tempProximityTierData.PMTierTranslations = new List <ProximityMessageTierTranslation>(); ProximityMessageTierTranslation tempPMTierTranslation; string tempData = ""; for (int i = 0; i < Languages.Count; i++) { tempPMTierTranslation = new ProximityMessageTierTranslation(); tempData = Request.Form["repProximityMsg$ctl0" + pmItem.ItemIndex + "$repProximityMsgDesc$ctl0" + i + "$prmessage"]; if (i == 0) { tempProximityTierData.Message = tempData; } if (tempData != "") { tempPMTierTranslation.ProximityMessageTierId = tempProximityTierData.Id; tempPMTierTranslation.LanguageId = Languages[i].LanguageID; tempPMTierTranslation.Message = tempData; tempProximityTierData.PMTierTranslations.Add(tempPMTierTranslation); } } } else { tempProximityTierData.Message = Request.Form["repProximityMsg$ctl0" + pmItem.ItemIndex + "$repProximityMsgDesc$ctl00$prmessage"]; tempProximityTierData.PMTierTranslations = new List <ProximityMessageTierTranslation>(); } objProximityMessage.ProximityMessageTiers.Add(tempProximityTierData); } AMSResult <bool> result = m_ProximityMessageRewardService.CreateUpdateProximityMessageReward(objProximityMessage, OfferID.ConvertToLong(), 9, RewardOptionID); RewardID = objProximityMessage.RewardID.ConvertToInt32(); //save the templates permission if (objOffer.IsTemplate) { //time to update the status bits for the templates int form_Disallow_Edit = 0; string[] LockFieldsList = null; form_Disallow_Edit = ucTemplateLockableFields.RewardLockStatus == true ? 1 : 0; if (ucTemplateLockableFields.ExceptionFields != null) { LockFieldsList = ucTemplateLockableFields.ExceptionFields.Select(x => x.ToString()).ToArray(); m_Commondata.PurgeFieldLevelPermissions(AppName, objOffer.OfferID, RewardID); m_Commondata.UpdateDeliverableAndFieldLevelPermissions(RewardID, objOffer.OfferID, form_Disallow_Edit, LockFieldsList); LockFieldsList = ucTemplateLockableFields.RewardTemplateFieldSource.TemplateFieldList.Where(x => LockFieldsList.Contains(x.FieldId.ToString()) == false).Select(x => x.FieldId.ToString()).ToArray(); m_Commondata.UpdateDeliverableAndUnlockFieldLevelPermissions(RewardID, objOffer.OfferID, form_Disallow_Edit == 1 ? 0 : 1, LockFieldsList); } else { m_Commondata.PurgeFieldLevelPermissions(AppName, objOffer.OfferID, RewardID); } } if (result.ResultType == AMSResultType.Success) { m_Commondata.QueryStr = "update CPE_Incentives with (RowLock) set LastUpdate=getdate(), LastUpdatedByAdminID=" + CurrentUser.AdminUser.ID + ", StatusFlag=1 where IncentiveID=" + OfferID + ";"; m_Commondata.LRT_Execute(); m_OAWService.ResetOfferApprovalStatus(OfferID); RegisterScript("Close", "window.close();"); } }