using System.Threading.Tasks;
using GxPress.EnumConst;
using GxPress.Request._AdminVerify;
using System.Transactions;
namespace GxPress.Service.Implement.AdminVerify
{
    public partial class AdminVerifyService
    {
        /// <summary>
        /// 添加好友
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task<bool> AddFriendAsync(AdminVerifyInFriendsRequest request)
        {
            try
            {
                using (var transactions = new TransactionScope())
                {
                    //获取用户信息
                    var user = await _userRepository.GetAsync(request.UserId);
                    var entity = new Entity.AdminVerify()
                    {
                        //
                        VerifyType = GroupTypeConst.Friends,
                        DisposeType = 0,
                        AdminId = request.FriendsUserId,
                        UserId = request.UserId,
                        SourceId = 0,
                        Name = user.Name,
                        AvatarUrl = user.AvatarUrl,
                        Remark = request.Remark,
                        SourceType = 0,
                        AddressBookGroupId = request.AddressBookGroupId
                    };
                     await _adminVerifyRepository.InsertAsync(entity);
                    // //获取用户信息
                    // user = await _userRepository.GetAsync(request.UserId);
                    // entity = new Entity.AdminVerify()
                    // {
                    //     //
                    //     VerifyType = GroupTypeConst.Friends,
                    //     DisposeType = 0,
                    //     AdminId = request.UserId,
                    //     UserId = request.FriendsUserId,
                    //     SourceId = 0,
                    //     Name = user.Name,
                    //     AvatarUrl = user.AvatarUrl,
                    //     Remark = request.Remark,
                    //     SourceType = 0,
                    //     AddressBookGroupId = 0
                    // };
                    // await _adminVerifyRepository.InsertAsync(entity);
                    transactions.Complete();
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
    }
}