@Override
  public FirstConnect login(String eMail, String passWord, ClientInterface client)
      throws RemoteException {

    User user = dataBaseOpeartions.checkUser(eMail, passWord);

    FirstConnect firstConnect = new FirstConnect();
    if (user != null) {
      try {
        if (!users.contains(user)) users.add(user);
        dataBaseOpeartions.changeStatues(user.getId(), "online");
        user.setStatus("online");
        connectedUsers.put(user.getId(), client);
        ArrayList<User> myFreiends = getContacts(user.getId());
        HashMap<Integer, ClientInterface> myOnlineUser = new HashMap<>();
        for (User user1 : myFreiends) {

          if (connectedUsers.containsKey(user1.getId())) {
            myOnlineUser.put(user1.getId(), connectedUsers.get(user1.getId()));
          }
        }

        Iterator onlineuser = myOnlineUser.keySet().iterator();
        while (onlineuser.hasNext()) {
          Object object = onlineuser.next();
          ClientInterface clients = myOnlineUser.get(object);
          clients.userNotification(
              user.id, client, user.getStatus()); // get online statues away buzy
        }

        firstConnect.setRequestses(dataBaseOpeartions.getfrFriendRequestses(user.id));
        firstConnect.userConnected = myOnlineUser;
        firstConnect.myUser = myFreiends;
        firstConnect.user = user;
        firstConnect.advertise = controller.advertise;
        firstConnect.messages = dataBaseOpeartions.getOfflineMessage(user.id);
      } catch (SQLException ex) {
        Logger.getLogger(ServerImplementation.class.getName()).log(Level.SEVERE, null, ex);
      }

    } else {
      return null;
    }

    //  JOptionPane.showMessageDialog(null, "abdo");
    return firstConnect;
  }