public bool AddOfflineMessage(GridInstantMessage message)
        {
            object remoteValue = DoRemote(message);

            if (remoteValue != null || m_doRemoteOnly)
            {
                return(remoteValue == null ? false : (bool)remoteValue);
            }

            if (message.fromGroup)
            {
                if (!m_saveGroupOfflineMessages)
                {
                    return(false);
                }
                if (m_maxGroupOfflineMessages <= 0 ||
                    GenericUtils.GetGenericCount(message.toAgentID, "GroupOfflineMessages", GD) < m_maxOfflineMessages)
                {
                    GenericUtils.AddGeneric(message.toAgentID, "GroupOfflineMessages", UUID.Random().ToString(),
                                            message.ToOSD(), GD);
                    return(true);
                }
            }
            else
            {
                if (m_maxOfflineMessages <= 0 ||
                    GenericUtils.GetGenericCount(message.toAgentID, "OfflineMessages", GD) < m_maxOfflineMessages)
                {
                    GenericUtils.AddGeneric(message.toAgentID, "OfflineMessages", UUID.Random().ToString(),
                                            message.ToOSD(), GD);
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 2
0
 /// <summary>
 ///   Adds a new offline message for the user.
 /// </summary>
 /// <param name = "message"></param>
 public bool AddOfflineMessage(GridInstantMessage message)
 {
     if (message.fromGroup)
     {
         if (!m_saveGroupOfflineMessages)
         {
             return(false);
         }
         if (m_maxGroupOfflineMessages <= 0 ||
             GenericUtils.GetGenericCount(message.toAgentID, "GroupOfflineMessages", GD) < m_maxOfflineMessages)
         {
             GenericUtils.AddGeneric(message.toAgentID, "GroupOfflineMessages", UUID.Random().ToString(),
                                     message.ToOSD(), GD);
             return(true);
         }
     }
     else
     {
         if (m_maxOfflineMessages <= 0 ||
             GenericUtils.GetGenericCount(message.toAgentID, "OfflineMessages", GD) < m_maxOfflineMessages)
         {
             GenericUtils.AddGeneric(message.toAgentID, "OfflineMessages", UUID.Random().ToString(),
                                     message.ToOSD(), GD);
             return(true);
         }
     }
     return(false);
 }
 /// <summary>
 ///     Gets the number of list of generic T's from the database
 /// </summary>
 /// <param name="OwnerID"></param>
 /// <param name="Type"></param>
 /// <returns></returns>
 public int GetGenericCount(UUID OwnerID, string Type)
 {
     return(GenericUtils.GetGenericCount(OwnerID, Type, GD));
 }