@SuppressWarnings("unchecked")
 @Override
 public ActionResult execute(WebContext webContext) {
   ResourceBundle messagesBundle = webContext.getMessagesBundle();
   CategoryService categoryService = new CategoryService();
   ActionResult backToPreviousPage = new ActionResult(webContext.getPreviousURI(), true);
   String name = webContext.getParameter(CATEGORY);
   if (name == null || name.isEmpty()) {
     webContext.setAttribute(
         "errorMessage",
         messagesBundle.getString("add-category.message.categoryIsEmpty"),
         Scope.FLASH);
     return backToPreviousPage;
   }
   Category createdCategory = categoryService.createCategory(name);
   // add new category to the list in app context
   if (createdCategory != null) {
     List<Category> categories =
         (List<Category>)
             webContext.getAttribute(ContextListener.CATEGORIES_LIST, Scope.APPLICATION);
     categories.add(createdCategory);
     webContext.setAttribute(
         "successMessage", messagesBundle.getString("add-category.message.success"), Scope.FLASH);
   } else {
     webContext.setAttribute(
         "errorMessage", messagesBundle.getString("add-category.message.exist"), Scope.FLASH);
   }
   return backToPreviousPage;
 }