public static void toUIPortal(UIPortal uiPortal, PortalConfig model) throws Exception {
    uiPortal.setSiteKey(new SiteKey(model.getType(), model.getName()));
    uiPortal.setStorageId(model.getStorageId());
    uiPortal.setName(model.getName());
    uiPortal.setId("UIPortal");
    // uiPortal.setFactoryId(model.getFactoryId());
    uiPortal.setModifiable(model.isModifiable());

    uiPortal.setLabel(model.getLabel());
    uiPortal.setDescription(model.getDescription());
    uiPortal.setLocale(model.getLocale());
    uiPortal.setSkin(model.getSkin());
    uiPortal.setAccessPermissions(model.getAccessPermissions());
    uiPortal.setEditPermission(model.getEditPermission());
    uiPortal.setProperties(model.getProperties());
    uiPortal.setRedirects(model.getPortalRedirects());

    Container layout = model.getPortalLayout();
    uiPortal.setMoveAppsPermissions(layout.getMoveAppsPermissions());
    uiPortal.setMoveContainersPermissions(layout.getMoveContainersPermissions());
    List<ModelObject> children = layout.getChildren();
    if (children != null) {
      for (Object child : children) {
        buildUIContainer(uiPortal, child, false);
      }
    }
  }