Exemplo n.º 1
0
    protected void AddCategoryClick(object sender, EventArgs e)
    {
        string categoryName     = popAddCategory.Value;
        string categoryId       = popAddCategory.ReferrerId;
        string categoryTypeName = string.Empty;

        // Need to figure out if this is a comms block category or a doco block category.
        if (!string.IsNullOrEmpty(categoryId))
        {
            BusiBlocks.CommsBlock.News.Category news = null;
            try
            {
                news             = NewsManager.GetCategory(categoryId);
                categoryTypeName = news.GetType().Name;
            }
            catch (NewsCategoryNotFoundException) { }
            if (news != null)
            {
                BusiBlocks.CommsBlock.News.Category childCategory = NewsManager.CreateCategory(categoryName);
                childCategory.ParentCategory = news;
                NewsManager.UpdateCategory(childCategory);
                this.PopulateTreeView <BusiBlocks.CommsBlock.News.Category>(NewsManager.GetAllCategories(), true, false, string.Empty);
            }
            else
            {
                BusiBlocks.DocoBlock.Category doco = null;
                try
                {
                    doco             = DocoManager.GetCategory(categoryId);
                    categoryTypeName = doco.GetType().Name;
                }
                catch (DocoCategoryNotFoundException) { }
                if (doco != null)
                {
                    BusiBlocks.DocoBlock.Category childDocoCategory = DocoManager.CreateCategory(categoryName);
                    childDocoCategory.ParentCategory = doco;
                    DocoManager.UpdateCategory(childDocoCategory);
                    this.PopulateTreeView <BusiBlocks.DocoBlock.Category>(DocoManager.GetAllCategories(), true, false, string.Empty);
                }
            }
            RadTreeView1.DataBind();
            RadTreeView1.FindNodeByText(categoryName).ExpandParentNodes();
            RadTreeView1.FindNodeByText(categoryName).Selected = true;

            ((IFeedback)this.Page.Master).ShowFeedback(
                BusiBlocksConstants.Blocks.Administration.LongName,
                categoryTypeName,
                Feedback.Actions.Created,
                categoryName
                );
        }
    }
Exemplo n.º 2
0
    protected void AddCategoryClick(object sender, EventArgs e)
    {
        string categoryName = popAddCategory.Value;
        string categoryId   = popAddCategory.ReferrerId;

        // If there is a category with the same name, then don't continue.
        if (NewsManager.GetCategoryByName(categoryName, false) != null)
        {
            ((IFeedback)this.Page.Master).SetError(
                GetType(), "A category called " + categoryName + " already exists"
                );
            return;
        }

        if (!string.IsNullOrEmpty(categoryId))
        {
            Category parentCategory = NewsManager.GetCategory(categoryId);
            Category newCategory    = NewsManager.CreateCategory(categoryName);
            newCategory.ParentCategory = parentCategory;

            NewsManager.UpdateCategory(newCategory);

            BindCategoriesTreeStructure();

            BindTree();

            treeView.BindEvents();

            treeView.Selected = parentCategory.Id;

            ((IFeedback)this.Page.Master).ShowFeedback(
                BusiBlocksConstants.Blocks.Administration.LongName,
                parentCategory.GetType().Name,
                Feedback.Actions.Created,
                categoryName
                );
        }
    }
Exemplo n.º 3
0
    protected void btSave_Click(object sender, EventArgs e)
    {
        try
        {
            string id = Request["id"];

            Category category;

            //Edit
            if (id != null)
            {
                category      = NewsManager.GetCategory(id);
                category.Name = txtDisplayName.Text;
            }
            else //New
            {
                category = NewsManager.CreateCategory(txtDisplayName.Text);
            }

            IList <Category> categories = GetAllViewableCategories(id);
            // Remove this category from the categories list.
            var indexOfThisCategory = from x in categories
                                      where x.Name.Equals(category.Name)
                                      select categories.IndexOf(x);

            if (indexOfThisCategory.Any())
            {
                categories.RemoveAt(indexOfThisCategory.First());
            }

            if (categories.Count > 0)
            {
                if (cmbParentCategory.SelectedIndex >= 0)
                {
                    Category parentCategory = categories[cmbParentCategory.SelectedIndex];
                    // The parent category can be assiged as the same category, do not allow this.
                    if (!parentCategory.Id.Equals(category.Id))
                    {
                        category.ParentCategory = categories[cmbParentCategory.SelectedIndex];
                    }
                }
            }
            category.Description = txtDescription.Text;
            NewsManager.UpdateCategory(category);
            IList <Access> currentAccess = AccessManager.GetItemAccess(category.Id);

            foreach (Access access in currentAccess)
            {
                AccessManager.RemoveAccess(access.Id);
            }

            foreach (Access a in AccessControl1.AccessList)
            {
                a.Id       = null;
                a.ItemId   = category.Id;
                a.ItemType = BusiBlocks.ItemType.NewsItem;
                AccessManager.AddAccess(a);
            }

            ((IFeedback)this.Page.Master).QueueFeedback(
                BusiBlocksConstants.Blocks.Communication.LongName,
                "Category",
                Feedback.Actions.Saved,
                category.Name
                );

            Navigation.Admin_ManageComm().Redirect(this);
        }
        catch (Exception ex)
        {
            throw ex;
            ((IFeedback)Master).SetException(GetType(), ex);
        }
    }