public ActionResult EditCategory([DataSourceRequest] DataSourceRequest request, CategoryViewModel category)
        {
            if (category != null && ModelState.IsValid)
            {
                var target = uow.Categories.GetById(category.Id);
                if (target != null)
                {
                    target.Name = category.Name;
                    uow.Categories.Update(target);
                    uow.SaveChanges();
                }
            }

            return Json(new[] { category }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }
        public ActionResult AddCategory([DataSourceRequest] DataSourceRequest request, CategoryViewModel category)
        {
            if (category != null && ModelState.IsValid)
            {
                var categoryToAdd = new Category()
                {
                    Name = category.Name
                };

                uow.Categories.Add(categoryToAdd);
                uow.SaveChanges();
            }

            return Json(new[] { category }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }
        public ActionResult RemoveCategory([DataSourceRequest] DataSourceRequest request, CategoryViewModel category)
        {
            if (category != null)
            {
                var categoryToDelete = uow.Categories.GetById(category.Id);
                foreach (var ticketToDelete in categoryToDelete.Tickets)
                {
                    foreach (var commentToDelete in ticketToDelete.Comments)
                    {
                        uow.Comments.Delete(commentToDelete);
                        uow.SaveChanges();
                    }

                    uow.Tickets.Delete(ticketToDelete);
                    uow.SaveChanges();
                }

                uow.Categories.Delete(categoryToDelete);
                uow.SaveChanges();
            }

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