Пример #1
0
 public ServiceResult<Set<String>> tagFriendToPage(
     long pageID, String[] usernames, String username) {
   ServiceResult<Set<String>> result = new ServiceResult<Set<String>>();
   result.setOK(true);
   PersistenceManager pm = null;
   UserInfo user = null;
   Page page = null;
   try {
     pm = PMF.get().getPersistenceManager();
     page = pm.getObjectById(Page.class, pageID);
     if (page == null) {
       result.setOK(false);
       result.setMessage(Global.messages.getString("no_page_found"));
     } else {
       if (!page.getUsername().equals(username)) {
         result.setOK(false);
         result.setMessage(
             String.format(Global.messages.getString("no_permission_to_tag_to_page"), username));
       } else {
         ServiceResult<Void> notiResult = null;
         for (String user2Tag : usernames) {
           try {
             if (page.getSetFriendsTaggedID().contains(user2Tag)) {
               result.setOK(false);
               result.setMessage(
                   result.getMessage()
                       + ";"
                       + String.format(
                           Global.messages.getString("already_tag_user_to_page"),
                           user2Tag,
                           pageID));
             } else {
               user = pm.getObjectById(UserInfo.class, user2Tag);
               page.getSetFriendsTaggedID().add(user2Tag);
               user.getSetPageTaggedID().add(pageID);
               result.setMessage(
                   result.getMessage()
                       + ";"
                       + String.format(
                           Global.messages.getString("tag_user_to_page_successfully"),
                           user2Tag,
                           pageID));
               // notification
               notiResult = dbNoti.insertWhenTagUserToPage(pageID, user2Tag, true);
               if (notiResult.isOK() == false) {
                 result.setMessage(
                     result.getMessage() + ";Notification Exception:" + notiResult.getMessage());
               }
             }
           } catch (Exception e) {
             e.printStackTrace();
             result.setOK(false);
             result.setMessage(
                 result.getMessage()
                     + ";"
                     + String.format(
                         Global.messages.getString("tag_user_to_page_fail"), user2Tag, pageID));
           }
         }
         // if (result.isOK()) {
         // result.setMessage("Tag friends thanh cong");
         // }
       }
     }
   } catch (Exception e) {
     e.printStackTrace();
     result.setMessage(Global.messages.getString("tag_friend_to_page_fail"));
   } finally {
     try {
       pm.close();
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
   if (result.isOK()) {
     result.setResult(page.getSetFriendsTaggedID());
   }
   return result;
 }