示例#1
0
        /// <summary>
        /// Get the requests for the user
        /// </summary>
        public static List <MessengerRequestData> GetRequests(int userId)
        {
            using (var session = SessionFactoryBuilder.Instance.SessionFactory.OpenSession())
            {
                MessengerRequestData messengerRequestAlias = null;
                PlayerData           playerDataAlias       = null;

                return(session.QueryOver(() => messengerRequestAlias)
                       .JoinQueryOver(() => messengerRequestAlias.FriendData, () => playerDataAlias)
                       .Where(() => messengerRequestAlias.UserId == userId)
                       .List() as List <MessengerRequestData>);
            }
        }
        public void Handle(Player player, Request request)
        {
            int userId = UserDao.GetIdByName(request.ReadString());

            if (userId < 1)
            {
                return;
            }

            var targetMessenger = Messenger.GetMessengerData(userId);
            var targetPlayer    = PlayerManager.Instance.GetPlayerById(userId);

            if (targetMessenger == null ||
                targetMessenger.HasFriend(player.Details.Id) ||
                targetMessenger.HasRequest(player.Details.Id))
            {
                return;
            }

            if (!targetMessenger.FriendRequestsEnabled)
            {
                player.Send(new MessengerRequestErrorComposer(MessengerRequestError.FriendRequestsDisabled));
                return;
            }

            if (player.Messenger.Friends.Count >= player.Messenger.MaxFriendsAllowed)
            {
                player.Send(new MessengerRequestErrorComposer(MessengerRequestError.FriendListFull));
                return;
            }

            var messengerRequest = new MessengerRequestData
            {
                FriendId = player.Details.Id,
                UserId   = userId
            };

            MessengerDao.SaveRequest(messengerRequest);

            targetMessenger.Requests.Add(player.Messenger.MessengerUser);

            if (targetPlayer != null)
            {
                targetPlayer.Send(new MessengerRequestComposer(player.Details));
            }
        }
示例#3
0
 /// <summary>
 /// Save a request
 /// </summary>
 public static void SaveRequest(MessengerRequestData messengerRequestData)
 {
     using (var session = SessionFactoryBuilder.Instance.SessionFactory.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             try
             {
                 session.Save(messengerRequestData);
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
             }
         }
     }
 }