public ActionResult Manage(int? id)
        {
            if (id.HasValue && id.Value < 1)
            {
                return this.HttpNotFound();
            }

            ManageViewModel model = new ManageViewModel();

            model.Category = id.HasValue && id > 0
                                 ? this.categoryService.GetCategoryById(id.Value).MapTo<CategoryBinder>()
                                 : CategoryBinder.EmptyInstance();

            model.Categories = id.HasValue
                                   ? this.categoryService.GetCategories().Where(x => x.Id != id.Value)
                                   : this.categoryService.GetCategories();

            return this.View(model);
        }
        public ActionResult Manage(int? id, CategoryBinder category)
        {
            if (!this.ModelState.IsValid)
            {
                ManageViewModel model = new ManageViewModel();

                model.Category = category;

                model.Categories = id.HasValue
                                       ? this.categoryService.GetCategories().Where(x => x.Id != id.Value)
                                       : this.categoryService.GetCategories();

                return this.View(model);
            }

            try
            {
                CategoryDto newCategory;

                if (id.HasValue && id.Value > 0)
                {
                    newCategory = this.categoryService.GetCategoryById(id.Value);
                }
                else
                {
                    newCategory = new CategoryDto();
                }

                if (category.ParentId.HasValue)
                {
                    newCategory.Parent = this.categoryService.GetCategoryById(category.ParentId.Value);
                }

                if (!string.IsNullOrEmpty(category.FeedBurnerUrl))
                {
                    newCategory.FeedBurnerUrl = new Uri(category.FeedBurnerUrl);
                }

                newCategory.Name = category.Name;
                newCategory.Description = category.Description;
                newCategory.IsDefault = category.IsDefault;

                this.categoryService.SaveOrUpdate(newCategory);

                return this.urlBuilder.Admin.FeedbackPage(FeedbackType.Positive, "Category Saved", this.urlBuilder.Admin.Category.List()).Redirect();
            }
            catch (DexterException e)
            {
                this.Logger.ErrorFormat("Unable to save the specified category", e);
                return this.urlBuilder.Admin.FeedbackPage(FeedbackType.Negative, "Category Not Saved", this.urlBuilder.Admin.Category.List()).Redirect();
            }
        }