@Override
  public void save(PageRequestContext requestContext) throws SetupWizardException {
    EducationTypeDAO educationTypeDAO = DAOFactory.getInstance().getEducationTypeDAO();

    int rowCount = requestContext.getInteger("educationTypesTable.rowCount");
    for (int i = 0; i < rowCount; i++) {
      String colPrefix = "educationTypesTable." + i;
      String name = requestContext.getString(colPrefix + ".name");
      String code = requestContext.getString(colPrefix + ".code");
      educationTypeDAO.create(name, code);
    }
  }
  @Override
  public void processSend(PageRequestContext requestContext) {
    PluginDAO pluginDAO = DAOFactory.getInstance().getPluginDAO();
    PluginRepositoryDAO pluginRepositoryDAO = DAOFactory.getInstance().getPluginRepositoryDAO();

    Long pluginsRowCount = requestContext.getLong("pluginsTable.rowCount");
    for (int i = 0; i < pluginsRowCount; i++) {
      String colPrefix = "pluginsTable." + i;

      Long id = requestContext.getLong(colPrefix + ".id");
      Boolean enabled = "1".equals(requestContext.getString(colPrefix + ".enabled"));
      Boolean remove = "1".equals(requestContext.getString(colPrefix + ".remove"));
      String groupId = requestContext.getString(colPrefix + ".groupId");
      String artifactId = requestContext.getString(colPrefix + ".artifactId");
      String version = requestContext.getString(colPrefix + ".version");

      if (id == null) {
        pluginDAO.create(artifactId, groupId, version, enabled);
      } else {
        Plugin plugin = pluginDAO.findById(id);
        if (remove == true) {
          pluginDAO.delete(plugin);
        } else {
          pluginDAO.updateEnabled(plugin, enabled);
          pluginDAO.updateArtifactId(plugin, artifactId);
          pluginDAO.updateGroupId(plugin, groupId);
          pluginDAO.updateVersion(plugin, version);
        }
      }
    }

    Long repositoriesRowCount = requestContext.getLong("repositoriesTable.rowCount");
    for (int i = 0; i < repositoriesRowCount; i++) {
      String colPrefix = "repositoriesTable." + i;

      Long id = requestContext.getLong(colPrefix + ".id");
      String url = requestContext.getString(colPrefix + ".url");
      Boolean remove = "1".equals(requestContext.getString(colPrefix + ".remove"));

      if (id == null) {
        pluginRepositoryDAO.create(url);
      } else {
        PluginRepository repository = pluginRepositoryDAO.findById(id);
        if (remove == true) {
          pluginRepositoryDAO.delete(repository);
        } else {
          pluginRepositoryDAO.updateUrl(repository, url);
        }
      }
    }

    processForm(requestContext);

    //    List<PluginRepository> pluginRepositories = pluginRepositoryDAO.listAll();
    //    List<Plugin> plugins = pluginDAO.listAll();
    //
    //    requestContext.getRequest().setAttribute("repositories", pluginRepositories);
    //    requestContext.getRequest().setAttribute("plugins", plugins);
    //
    //    requestContext.setIncludeJSP("/templates/system/plugins.jsp");
  }