/// <summary> /// Loads the expressions. /// </summary> /// <param name="iStartIndex">Start index of the i.</param> /// <param name="iNumItems">The i num items.</param> /// <param name="sFilter">The s filter.</param> private void LoadExpressions(int iStartIndex, int iNumItems, string sFilter) { ExpressionDto dto = ExpressionManager.GetExpressionDto(ExpressionCategory.GetExpressionCategory(ExpressionCategory.CategoryKey.Promotion).Key); ExpressionFilter.DataSource = dto.Expression; ExpressionFilter.DataBind(); }
/// <summary> /// Loads the expressions. /// </summary> private void LoadExpressions() { ExpressionDto dto = ExpressionManager.GetExpressionDto(ExpressionCategory.GetExpressionCategory(ExpressionCategory.CategoryKey.Policy).Key); ddlExpression.DataSource = dto; ddlExpression.DataBind(); }
/// <summary> /// Creates the expression row. /// </summary> /// <param name="expressionDto">The expression dto.</param> /// <returns></returns> public ExpressionDto.ExpressionRow CreateExpressionRow(ref ExpressionDto expressionDto) { PromotionDto.PromotionConditionRow row = null; ExpressionDto.ExpressionRow expressionRow = null; if (_PromotionDto.PromotionCondition.Count == 0) { row = _PromotionDto.PromotionCondition.NewPromotionConditionRow(); row.PromotionId = _PromotionDto.Promotion[0].PromotionId; expressionRow = expressionDto.Expression.NewExpressionRow(); expressionRow.ApplicationId = MarketingConfiguration.Instance.ApplicationId; expressionRow.Category = ExpressionCategory.CategoryKey.Promotion.ToString(); expressionRow.Created = DateTime.UtcNow; } else { row = _PromotionDto.PromotionCondition[0]; expressionDto = ExpressionManager.GetExpressionDto(row.ExpressionId); expressionRow = expressionDto.Expression[0]; } expressionRow.ModifiedBy = Page.User.Identity.Name; expressionRow.Description = _Config.Description; expressionRow.Name = _Config.Type; row.ExpressionId = expressionRow.ExpressionId; if (row.RowState == DataRowState.Detached) { PromotionDto.PromotionCondition.Rows.Add(row); } return(expressionRow); }
/// <summary> /// Handles the SaveChanges event of the EditSaveControl control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> void EditSaveControl_SaveChanges(object sender, SaveControl.SaveEventArgs e) { // Validate form if (!this.Page.IsValid) { e.RunScript = false; return; } ExpressionDto expression = (ExpressionDto)Session[_ExpressionDtoEditSessionKey]; //null; if (ExpressionId > 0 && expression == null) { expression = ExpressionManager.GetExpressionDto(ExpressionId); //Int32.Parse(Parameters["ExpressionId"].ToString())); } else if (ExpressionId == 0) { expression = new ExpressionDto(); } IDictionary context = new ListDictionary(); context.Add(_ExpressionDtoString, expression); ViewControl.SaveChanges(context); if (expression.HasChanges()) { ExpressionManager.SaveExpression(expression); } // we don't need to store Dto in session any more Session.Remove(_ExpressionDtoEditSessionKey); }
/// <summary> /// Processes the delete command. /// </summary> /// <param name="items">The items.</param> void ProcessDeleteCommand(string[] items) { for (int i = 0; i < items.Length; i++) { string[] keys = EcfListView.GetPrimaryKeyIdStringItems(items[i]); if (keys != null) { string id = keys[0]; List <int> expressionList = new List <int>(); SegmentDto dto = SegmentManager.GetSegmentDto(Int32.Parse(id)); if (dto.Segment.Count > 0) { SegmentDto.SegmentRow segmentRow = dto.Segment[0]; foreach (SegmentDto.SegmentConditionRow condition in segmentRow.GetSegmentConditionRows()) { expressionList.Add(condition.ExpressionId); } dto.Segment[0].Delete(); SegmentManager.SaveSegment(dto); } // Delete corresponding expressions foreach (int expressionId in expressionList) { ExpressionDto expressionDto = ExpressionManager.GetExpressionDto(expressionId); if (expressionDto != null && expressionDto.Expression.Count > 0) { expressionDto.Expression[0].Delete(); ExpressionManager.SaveExpression(expressionDto); } } } } }
/// <summary> /// Gets the marketing helper. /// </summary> /// <param name="useCache">if set to <c>true</c> [use cache].</param> /// <returns></returns> private MarketingHelper GetMarketingHelper(bool useCache) { MarketingHelper helper = null; string cacheKey = MarketingCache.CreateCacheKey("MarketingHelper"); if (useCache) { object cachedObject = MarketingCache.Get(cacheKey); if (cachedObject != null) { helper = (MarketingHelper)cachedObject; } } // If marketing is not initialized, init it if (helper == null) { // Load promotion Dto PromotionDto promotionDto = PromotionManager.GetPromotionDto(FrameworkContext.Current.CurrentDateTime); // Get all the data from the database first helper = new MarketingHelper(CampaignManager.GetCampaignDto(), ExpressionManager.GetExpressionDto(), PolicyManager.GetPolicyDto(), promotionDto, SegmentManager.GetSegmentDto()); // Insert cache //if (useCache) MarketingCache.Insert(cacheKey, helper, MarketingConfiguration.Instance.CacheConfig.PromotionCollectionTimeout); } return(helper); }
/// <summary> /// Loads the fresh. /// </summary> /// <returns></returns> private ExpressionDto LoadFresh() { ExpressionDto expression = ExpressionManager.GetExpressionDto(ExpressionId); // persist in session Session[_ExpressionDtoEditSessionKey] = expression; return(expression); }
/// <summary> /// Loads the data and data bind. /// </summary> /// <param name="sortExpression">The sort expression.</param> private void LoadDataAndDataBind(string sortExpression) { ExpressionDto dto = ExpressionManager.GetExpressionDto(ExpressionCategory); if (dto.Expression != null) { DataView view = dto.Expression.DefaultView; view.Sort = sortExpression; MyListView.DataSource = view; } MyListView.CurrentListView.PrimaryKeyId = EcfListView.MakePrimaryKeyIdString("ExpressionId"); MyListView.DataBind(); }
/// <summary> /// Processes the delete command. /// </summary> /// <param name="items">The items.</param> void ProcessDeleteCommand(string[] items) { for (int i = 0; i < items.Length; i++) { string[] keys = EcfListView.GetPrimaryKeyIdStringItems(items[i]); if (keys != null) { int id = Int32.Parse(keys[0]); ExpressionDto dto = ExpressionManager.GetExpressionDto(id); if (dto.Expression.Count > 0) { dto.Expression[0].Delete(); ExpressionManager.SaveExpression(dto); } } } }
/// <summary> /// Processes the delete command. /// </summary> /// <param name="items">The items.</param> void ProcessDeleteCommand(string[] items) { for (int i = 0; i < items.Length; i++) { string[] keys = EcfListView.GetPrimaryKeyIdStringItems(items[i]); if (keys != null) { string id = keys[0]; using (TransactionScope scope = new TransactionScope()) { // delete selected sites PromotionDto dto = PromotionManager.GetPromotionDto(Int32.Parse(id)); List <int> expressionList = new List <int>(); if (dto.Promotion.Count > 0) { PromotionDto.PromotionRow promotionRow = dto.Promotion[0]; foreach (PromotionDto.PromotionConditionRow condition in promotionRow.GetPromotionConditionRows()) { expressionList.Add(condition.ExpressionId); } dto.Promotion[0].Delete(); PromotionManager.SavePromotion(dto); // Delete corresponding expressions foreach (int expressionId in expressionList) { ExpressionDto expressionDto = ExpressionManager.GetExpressionDto(expressionId); if (expressionDto != null && expressionDto.Expression.Count > 0) { expressionDto.Expression[0].Delete(); ExpressionManager.SaveExpression(expressionDto); } } } scope.Complete(); } } } }
/// <summary> /// Gets the name of the expression. /// </summary> /// <param name="expressionId">The expression id.</param> /// <returns></returns> protected string GetExpressionName(int expressionId) { ExpressionDto expr = ExpressionManager.GetExpressionDto(expressionId); return(expr.Expression[0].Name); }