public void Create()
        {
            ForumCategory category = ForumValidator.ValidateCategory(ctx);

            if (errors.HasErrors)
            {
                run(Admin, category.BoardId);
                return;
            }

            ForumBoard board = boardService.GetById(category.BoardId, ctx.owner.obj);

            if (board == null)
            {
                run(Admin, category.BoardId);
                return;
            }

            category.AppId = board.AppId;
            Result result = categoryService.Insert(category);

            if (result.HasErrors)
            {
                errors.Join(result);
                run(Admin, category.BoardId);
                return;
            }

            logService.Add((User)ctx.viewer.obj, ctx.app.Id, string.Format(alang("logAddCategory"), category.Name, board.Name), ctx.Ip);
            redirect(Admin, board.Id);
        }
        public void Update(int id)
        {
            ForumCategory category = categoryService.GetById(id, ctx.owner.obj);

            if (category == null)
            {
                echoRedirect(lang("exDataNotFound"));
                return;
            }
            category = ForumValidator.ValidateCategory(category, ctx);
            Result result = categoryService.Update(category);

            if (result.HasErrors)
            {
                errors.Join(result);
                run(Edit, id);
            }
            else
            {
                logService.Add((User)ctx.viewer.obj, ctx.app.Id, alang("logEditCategory") + ":" + category.Name, ctx.Ip);
                redirect(Admin, category.BoardId);
            }
        }