예제 #1
0
        /// <summary>
        /// Adds a new child for the given parent category
        /// </summary>
        /// <param name="parent">parent category (0 for root)</param>
        /// <param name="form">form containig data</param>
        /// <returns></returns>
        public bool add(long parent, Form_Category_Add form)
        {
            category c = new category();
            c.date = DateTime.Now;
            c.parentid = parent;
            if (parent == 0)
            {
                c.parentid = null;
            }
            c.name = form["name"].getValue();
            c.alias = this._app.makeAlias(form["name"].getValue());

            using (ArticleDataContext a = new ArticleDataContext())
            {
                a.categories.InsertOnSubmit(c);
                try
                {
                    a.SubmitChanges();
                }
                catch (Exception)
                {
                    return false;
                }
            }

            return true;
        }
예제 #2
0
        //
        // GET+POST: /Backend/AddCategory[?parent={id}]
        public ActionResult AddCategory()
        {
            long parent = 0;
            if (Request.Params.AllKeys.Contains("parent"))
            {
                try
                {
                    parent = long.Parse(Request.Params["parent"]);
                }
                catch { }
            }

            string name = "Base imaginary category (root)";

            if (parent > 0)
            {
                category c = this._app.categories().getById(parent);
                if (c != null)
                {
                    name = c.name;
                }
            }

            ViewData["name"] = name;

            Form_Category_Add form = new Form_Category_Add(parent);
            if (Request.HttpMethod.ToLower() == form.getMethod().ToString())
            {
                if (form.isValid(Request.Form))
                {
                    if (this._app.categories().add(parent, form))
                    {
                        _messages.addMessage("The category has been successfully added");
                        return Redirect("/backend/ListCategories?parent=" + parent.ToString());
                    }
                }
            }

            ViewData["form"] = form.render();

            return View();
        }
예제 #3
0
        /// <summary>
        /// Save changes for the given category
        /// </summary>
        /// <param name="form">form containing data</param>
        /// <param name="c">category</param>
        /// <returns>success</returns>
        public bool save(Form_Category_Add form, category c)
        {
            category newCat = new category();
            newCat.id = c.id;

            if (c.parentid.HasValue)
            {
                newCat.parentid = c.parentid;
            }

            newCat.name = form["name"].getValue();
            newCat.date = c.date;

            using (ArticleDataContext a = new ArticleDataContext())
            {
                a.categories.Attach(newCat, c);
                try
                {
                    a.SubmitChanges();
                }
                catch (Exception)
                {
                    return false;
                }
            }

            return true;
        }
예제 #4
0
        //
        // GET+POST: /Backend/EditCategory?id={id}
        public ActionResult EditCategory()
        {
            if (Request.Params.AllKeys.Contains("id"))
            {

                long id = 0;
                try
                {
                    id = long.Parse(Request.Params["id"]);
                }
                catch { }

                category c = this._app.categories().getById(id);

                if (c != null)
                {
                    Form_Category_Add form = new Form_Category_Add(0);
                    if (Request.HttpMethod.ToLower() == form.getMethod().ToString())
                    {
                        if (form.isValid(Request.Form))
                        {
                            if (this._app.categories().save(form, c))
                            {
                                _messages.addMessage("The category has been successfully saved");
                                if (c.parentid.HasValue)
                                {
                                    return Redirect("/backend/ListCategories?parent=" + c.parentid);
                                }
                                return Redirect("/backend/ListCategories?parent=" + c.id);
                            }
                        }
                    }

                    form.setEditData(c);

                    ViewData["form"] = form.render();

                    return View();
                }
            }
            _messages.addError("Undefined or wrong parameter ID");
            return RedirectToAction("listCategories", "backend");
        }