Esempio n. 1
0
        /// <summary>
        /// 取消关注用户
        /// </summary>
        /// <param name="userId">关注者ID</param>
        /// <param name="focusUserId">被关注者ID</param>
        /// <returns></returns>
        public async Task UnFocusUser(Guid userId, Guid focusUserId)
        {
            int userFansCount;
            int userFocusCount;
            int focusUserFansCount;
            int focusUserFocusCount;

            using (IFanService fanSvc = new FanService())
            {
                Fans fan = await fanSvc.GetAll().Where(m => m.UserId == userId && m.FocusUserId == focusUserId).FirstOrDefaultAsync();

                await fanSvc.DeleteAsync(fan);

                userFocusCount = await fanSvc.GetAll().Where(m => m.UserId == userId).CountAsync();               //用户关注数量

                focusUserFocusCount = await fanSvc.GetAll().Where(m => m.UserId == focusUserId).CountAsync();     //被关注者关注数量

                userFansCount = await fanSvc.GetAll().Where(m => m.FocusUserId == userId).CountAsync();           //用户粉丝数量

                focusUserFansCount = await fanSvc.GetAll().Where(m => m.FocusUserId == focusUserId).CountAsync(); //被关注者粉丝数量
            }
            using (IUserService userSve = new UserService())
            {
                User user = await userSve.GetOneByIdAsync(userId);

                user.FansCount  = userFansCount;
                user.FocusCount = userFocusCount;
                await userSve.EditAsync(user);

                User focusUser = await userSve.GetOneByIdAsync(focusUserId);

                focusUser.FansCount  = focusUserFansCount;
                focusUser.FocusCount = focusUserFocusCount;
                await userSve.EditAsync(focusUser);
            }
        }