Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Loads the expressions.
        /// </summary>
        private void LoadExpressions()
        {
            ExpressionDto dto = ExpressionManager.GetExpressionDto(ExpressionCategory.GetExpressionCategory(ExpressionCategory.CategoryKey.Policy).Key);

            ddlExpression.DataSource = dto;
            ddlExpression.DataBind();
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Loads the fresh.
        /// </summary>
        /// <returns></returns>
        private ExpressionDto LoadFresh()
        {
            ExpressionDto expression = ExpressionManager.GetExpressionDto(ExpressionId);

            // persist in session
            Session[_ExpressionDtoEditSessionKey] = expression;

            return(expression);
        }
Exemplo n.º 8
0
        /// <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();
        }
Exemplo n.º 9
0
        /// <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);
                    }
                }
            }
        }
Exemplo n.º 10
0
        /// <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();
                    }
                }
            }
        }
Exemplo n.º 11
0
        /// <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);
        }