/// <summary>
        ///
        /// </summary>
        /// <param name="FriendRequest"></param>
        /// <returns></returns>
        public async Task <IHttpActionResult> AddFriendRequest(FriendRequestModel FriendRequest)
        {
            FriendRequest.UserID    = CurrentUser.UserID;
            FriendRequest.CreatedOn = DateTime.Now;
            ModelState.Remove("FriendRequest.UserID");
            ModelState.Remove("FriendRequest.CreatedOn");
            FriendRequest.PostedByName       = CurrentUser.FullName;
            FriendRequest.PostedByAvatar     = CurrentUser.ProfilePicture;
            FriendRequest.UserInfo           = CurrentUser.Gender;
            FriendRequest.PageRelationStatus = Enums.FriendshipStatus.FS;
            if (ModelState.IsValid)
            {
                try
                {
                    BroadcastFriendRequest model = _page.AddFriendRequest(FriendRequest);
                    await _broadcaster.AddFriendRequest(model, FriendRequest.broadCastType);

                    return(Ok((byte)model.FriendRequest.PageRelationStatus));
                }
                catch (Exception ex)
                {
                    Logs.Error("Error adding friend request for page", ex);
                    return(BadRequest(ex.Message));
                }
            }
            else
            {
                return(BadRequest(ModelState.JsonValidation()));
            }
        }
Exemple #2
0
        public async Task <IHttpActionResult> CancelFriendRequest(FriendRequestModel FriendRequest)
        {
            FriendRequest.UserID    = CurrentUser.UserID;
            FriendRequest.CreatedOn = DateTime.Now;
            ModelState.Remove("FriendRequest.PageID");
            ModelState.Remove("FriendRequest.CreatedOn");
            FriendRequest.PostedByName       = CurrentUser.FullName;
            FriendRequest.PostedByAvatar     = CurrentUser.ProfilePicture;
            FriendRequest.PageRelationStatus = Enums.FriendshipStatus.FS;
            if (ModelState.IsValid)
            {
                try
                {
                    BroadcastFriendRequest model = _page.RejectUserFriendRequest(FriendRequest);
                    await _broadcaster.CancelFriendRequest(model, FriendRequest.broadCastType);

                    return(Ok(model.FriendRequest));
                }
                catch (Exception ex)
                {
                    ExceptionService.LogError("Error cancel friend request to page", ex);
                    return(BadRequest(ex.Message));
                }
            }
            else
            {
                return(BadRequest(ModelState.JsonValidation()));
            }
        }
        private async Task BroadcastRejectUserFriendRequestToWeb(BroadcastFriendRequest model)
        {
            IList <string> connectionIDs = _user.GetFollowerList(model.FriendRequest.PageID, model.FriendRequest.UserID, model.FriendRequest.PageType, model.FriendRequest.PageRelationStatus)
                                           .Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).Select(x => x.ConnectionID).ToList();

            await _headerBroadCaster.Clients.Clients(connectionIDs)
            .removeRequests(model.FriendRequest);
        }
        public async Task RejectUserFriendRequest(BroadcastFriendRequest model, Enums.BroadCastType broadCastType)
        {
            try
            {
                switch (broadCastType)
                {
                case Enums.BroadCastType.Web:
                    await BroadcastRejectUserFriendRequestToWeb(model);

                    break;
                }
            }
            catch (Exception ex)
            {
                ExceptionService.LogError("Error broadcasting cancel to page", ex);
            }
        }
        public async Task AcceptFriendRequest(BroadcastFriendRequest model, Enums.BroadCastType broadCastType)
        {
            try
            {
                switch (broadCastType)
                {
                case Enums.BroadCastType.Web:
                    await BroadcastAcceptFriendRequestToWeb(model);

                    break;
                }
            }
            catch (Exception ex)
            {
                ExceptionService.LogError("Error broadcasting comment to post", ex);
            }
        }
Exemple #6
0
        public async Task CancelFriendRequest(BroadcastFriendRequest model, Enums.BroadCastType broadCastType)
        {
            try
            {
                switch (broadCastType)
                {
                case Enums.BroadCastType.Web:
                    await BroadcastCancelFriendRequestToWeb(model);

                    break;
                }
            }
            catch (Exception ex)
            {
                Logs.Error("Error broadcasting cancel to page", ex);
            }
        }
        private async Task BroadcastAcceptFriendRequestToWeb(BroadcastFriendRequest model)
        {
            var users = _user.GetFollowerList(model.FriendRequest.PageID, model.FriendRequest.UserID, model.FriendRequest.PageType, model.FriendRequest.PageRelationStatus);
            //  .Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).Select(x => x.ConnectionID).ToList();

            IList <string> requesterID = users.Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web && x.UserID == model.FriendRequest.UserID).Select(x => x.ConnectionID).ToList();

            IList <string> connectionIDs = users.Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).SkipWhile(x => x.UserID == model.FriendRequest.UserID).Select(x => x.ConnectionID).ToList();

            await _headerBroadCaster.Clients.Clients(connectionIDs)
            .newNotifications(model.Notification);

            await _chatBroadCaster.Clients.Clients(requesterID)
            .updateUserList(_user.GetUserInfoByUserID(model.FriendRequest.PageID));

            await _headerBroadCaster.Clients.Clients(requesterID)
            .removeRequests(model.FriendRequest);
        }