public ActionResult UpdateCategory([DataSourceRequest] DataSourceRequest request, CategoryAdminModel category)
        {

            if (category != null && ModelState.IsValid)
            {
                var target = this.Data.Categories.All().FirstOrDefault(c => c.Id == category.Id);
                if (target != null)
                {
                    target.Name = category.Name;
                    this.Data.SaveChanges();
                }
            }

            return Json(new[] { category }.ToDataSourceResult(request, ModelState));
        }
        public ActionResult CreateCategory([DataSourceRequest] DataSourceRequest request, CategoryAdminModel category)
        {
            if (ModelState.IsValid)
            {
                var addedCategory = new Category()
                {
                    Name = category.Name
                };

                this.Data.Categories.Add(addedCategory);

                this.Data.SaveChanges();

                category.Id = addedCategory.Id;
            }

            return Json(new[] { category }.ToDataSourceResult(request, ModelState));
        }
        public ActionResult DestroyCategory([DataSourceRequest] DataSourceRequest request, CategoryAdminModel category)
        {
            if ((category != null) && ModelState.IsValid)
            {
                var categoryToDelete = this.Data.Categories.All().FirstOrDefault(c => c.Id == category.Id);
                foreach (var ticket in categoryToDelete.Tickets.ToList())
                {
                    foreach (var comment in ticket.Comments.ToList())
                    {
                        this.Data.Comments.Delete(comment);
                    }

                    this.Data.Tickets.Delete(ticket);
                }

                this.Data.Categories.Delete(categoryToDelete);
                this.Data.SaveChanges();
            }

            return Json(new[] { category }.ToDataSourceResult(request, ModelState));
        }