示例#1
0
        //向IM 用户添加好友
        //先添加本地,再添加远程的,如果远程失败,删除本地的
        private string AddFriend(HttpContext context)
        {
            string userid          = context.Request["userid"] ?? "";
            string friend_username = context.Request["friend_username"] ?? "";
            string message         = string.Empty;
            string usercode        = string.Empty;
            long   IMFriendID      = 0;

            if (string.IsNullOrEmpty(userid))
            {
                return(ResultJson(ResultType.error, "要添加好友的用户ID不能为空", ""));
            }
            if (string.IsNullOrEmpty(friend_username))
            {
                return(ResultJson(ResultType.error, "被添加好友的用户名不能为空", ""));
            }
            UserService userSvc   = new UserService();
            bool        addResult = userSvc.AddFriend(userid, friend_username, out usercode, out IMFriendID, out message);

            if (addResult)
            {
                int statusCode;
                var api  = new EaseMobAPIHelper();
                var data = api.AccountAddFriend(usercode, friend_username, out statusCode);
                if (statusCode == 200)
                {
                    var emResult = JsonConvert.DeserializeObject <EaseMobResult>(data);
                    if (!string.IsNullOrEmpty(emResult.error) || emResult.error == null)
                    {
                        return(ResultJson(ResultType.success, "添加好友成功", data));
                    }
                    else
                    {
                        userSvc.DelFriend(IMFriendID, out message);//环信接口失败要删除好友关系
                        return(ResultJson(ResultType.error, "添加好友失败", emResult.error));
                    }
                }
                else
                {
                    userSvc.DelFriend(IMFriendID, out message);//环信接口失败要删除好友关系
                    return(ResultJson(ResultType.error, "添加好友失败", data));
                }
            }
            return(ResultJson(ResultType.error, message, ""));
        }