public JsonResult UpdateCategory([DataSourceRequest] DataSourceRequest request, CategoryViewModel categoryModel)
        {
            if (ModelState.IsValid)
            {
                var existingCategory = this.db.Categories.GetById(categoryModel.Id);
                if (existingCategory != null)
                {
                    existingCategory.Name = categoryModel.Name;

                    this.db.Categories.Update(existingCategory);
                    this.db.SaveChanges();
                }
                else
                {
                    ModelState.AddModelError("Category", "This category does not exist anymore and cant' be updated");
                }
            }

            return Json(new[] { categoryModel }.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }
        public JsonResult CreateCategory([DataSourceRequest] DataSourceRequest request, CategoryViewModel categoryModel)
        {
            if (string.IsNullOrWhiteSpace(categoryModel.Name))
            {
                ModelState.AddModelError("Name", "The 'Category Name' field is required");
            }
            else if (categoryModel.Name.Length < 5 || categoryModel.Name.Length > 255)
            {
                ModelState.AddModelError("Name", "The 'Category Name' field must between 5 and 255 characters");
            }
            else
            {
                var newCategory = new Category()
                {
                    Id = Guid.NewGuid(),
                    Name = categoryModel.Name
                };

                this.db.Categories.Add(newCategory);
                this.db.SaveChanges();
            }

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