/// <summary> /// 关注用户/取消关注动态处理 /// </summary> /// <param name="sender">关注实体</param> /// <param name="eventArgs">事件参数</param> void FollowActivityEventModule_After(FollowEntity sender, CommonEventArgs eventArgs) { ActivityService activityService = new ActivityService(); if (EventOperationType.Instance().Create() == eventArgs.EventOperationType) { UserService userService = new UserService(); IUser user = userService.GetUser(sender.UserId); if (user == null) { return; } Activity activity = Activity.New(); activity.ActivityItemKey = ActivityItemKeys.Instance().FollowUser(); activity.OwnerType = ActivityOwnerTypes.Instance().User(); activity.OwnerId = sender.UserId; activity.OwnerName = user.DisplayName; activity.UserId = sender.UserId; activity.ReferenceId = sender.FollowedUserId; activity.TenantTypeId = TenantTypeIds.Instance().User(); activityService.Generate(activity, false); activityService.TraceBackInboxAboutOwner(sender.UserId, sender.FollowedUserId, ActivityOwnerTypes.Instance().User()); } else if (EventOperationType.Instance().Delete() == eventArgs.EventOperationType) { activityService.RemoveInboxAboutOwner(sender.UserId, sender.FollowedUserId, ActivityOwnerTypes.Instance().User()); } }
public int GetOneByFollowerAndFollowed(int FollowerId, int FollowedId) { using (SqlConnection c = new SqlConnection(ConfigurationManager.ConnectionStrings["API"].ConnectionString)) { using (SqlCommand cmd = c.CreateCommand()) { cmd.CommandText = "SELECT * FROM Follow WHERE FollowerId = @FollowerId AND FollowedId = @FollowedId"; cmd.Parameters.AddWithValue("FollowerId", FollowerId); cmd.Parameters.AddWithValue("FollowedId", FollowedId); c.Open(); using (SqlDataReader Tab = cmd.ExecuteReader()) { if (Tab.Read()) { FollowEntity S = new FollowEntity() { Id = (int)Tab["Id"], FollowerId = (int)Tab["FollowerId"], FollowedId = (int)Tab["FollowedId"], }; return(S.Id); } else { return(0); } } } } }
/// <summary> /// 取消关注后更新缓存 /// </summary> /// <param name="sender">关注实体</param> /// <param name="eventArgs">事件参数</param> void CancelFollowEventModule_After(FollowEntity sender, CommonEventArgs eventArgs) { if (eventArgs.EventOperationType == EventOperationType.Instance().Delete()) { CategoryService service = new CategoryService(); service.ClearCategoriesFromItem(sender.Id, sender.UserId, TenantTypeIds.Instance().User()); //更新用户缓存 ICacheService cacheService = DIContainer.Resolve <ICacheService>(); RealTimeCacheHelper realTimeCacheHelper = EntityData.ForType(typeof(User)).RealTimeCacheHelper; if (cacheService.EnableDistributedCache) { realTimeCacheHelper.IncreaseEntityCacheVersion(sender.UserId); } else { string cacheKey = realTimeCacheHelper.GetCacheKeyOfEntity(sender.UserId); User user = cacheService.Get <User>(cacheKey); if (user != null && user.FollowedCount > 0) { user.FollowedCount--; } } } }
/// <summary> /// 用户积分处理 /// </summary> /// <param name="sender">关注实体</param> /// <param name="eventArgs">事件参数</param> void FollowPointModule_After(FollowEntity sender, CommonEventArgs eventArgs) { IUserService userservice = DIContainer.Resolve <IUserService>(); IUser followedUser = userservice.GetUser(sender.FollowedUserId); if (followedUser == null) { return; } string pointItemKey = string.Empty; PointService pointService = new PointService(); string description = string.Format(ResourceAccessor.GetString("PointRecord_Pattern_FollowUser"), followedUser.DisplayName); #region 设置积分项Key if (EventOperationType.Instance().Create() == eventArgs.EventOperationType) { pointItemKey = PointItemKeys.Instance().FollowUser(); } else if (EventOperationType.Instance().Delete() == eventArgs.EventOperationType) { pointItemKey = PointItemKeys.Instance().CancelFollowUser(); } #endregion pointService.GenerateByRole(sender.UserId, pointItemKey, description); }
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { FollowEntity followEntity = followerObject.GetComponent <FollowEntity>(); if (followEntity == null) { followEntity = followerObject.AddComponent <FollowEntity>(); } followEntity.entityToFollow = entity; }
private void FollowUser_After(FollowEntity followEntity, CommonEventArgs eventArgs) { if (eventArgs.EventOperationType == EventOperationType.Instance().Update() || eventArgs.EventOperationType == EventOperationType.Instance().Delete()) { if (searcher == null) { searcher = (FollowUserSearcher)SearcherFactory.GetSearcher(FollowUserSearcher.CODE); } searcher.Update(followEntity.UserId); } }
// id is the follower, userId is followee aka person that the follower is following public async Task <bool> FollowUserAsync(int id, int userId) { if (id == userId) { return(false); } var follow = new FollowEntity(userId, id); // convert await _context.FollowEntities.AddAsync(follow); await _context.SaveChangesAsync(); return(true); }
public async Task DoFollowBackAsync(int currentUserId, int followedId, CancellationToken cancellationToken) { var newEntity = new FollowEntity { FollowerId = currentUserId, FollowedId = followedId }; await _dbContext.Follows .AddAsync(newEntity, cancellationToken) .ConfigureAwait(false); await _dbContext .SaveChangesAsync(cancellationToken) .ConfigureAwait(false); }
public static FollowEntity ToEntity(this FollowModel FM) { if (FM != null) { FollowEntity FE = new FollowEntity(); FE.FollowedId = FM.Followed.Id; FE.FollowerId = FM.Follower.Id; return(FE); } else { return(null); } }
public static FollowModel ToModel(this FollowEntity FE) { if (FE != null) { UserRepository repoU = new UserRepository(); FollowModel FM = new FollowModel(); FM.Followed = repoU.GetOne(FE.FollowedId).MapTo <UserModel>(); FM.Follower = repoU.GetOne(FE.FollowerId).MapTo <UserModel>(); return(FM); } else { return(null); } }
/// <summary> /// 生成通知 /// </summary> /// <param name="sender">关注实体</param> /// <param name="eventArgs">事件参数</param> void FollowNoticeModule_After(FollowEntity sender, CommonEventArgs eventArgs) { if (EventOperationType.Instance().Create() == eventArgs.EventOperationType) { if (sender.IsQuietly) { return; } IUserService userService = DIContainer.Resolve <IUserService>(); //关注用户 IUser user = userService.GetUser(sender.UserId); if (user == null) { return; } IUser followedUser = userService.GetUser(sender.FollowedUserId); if (followedUser == null) { return; } NoticeService service = new NoticeService(); Notice notice = Notice.New(); notice.TypeId = NoticeTypeIds.Instance().Hint(); notice.TemplateName = "FollowUser"; notice.UserId = followedUser.UserId; notice.LeadingActorUserId = user.UserId; notice.LeadingActor = user.DisplayName; notice.LeadingActorUrl = SiteUrls.FullUrl(SiteUrls.Instance().SpaceHome(user.UserName)); notice.RelativeObjectId = followedUser.UserId; notice.RelativeObjectName = followedUser.DisplayName; notice.RelativeObjectUrl = SiteUrls.FullUrl(SiteUrls.Instance().SpaceHome(followedUser.UserName)); service.Create(notice); } else if (eventArgs.EventOperationType == EventOperationType.Instance().Delete()) { NoticeService service = new NoticeService(); IEnumerable <Notice> notices = service.GetTops(sender.FollowedUserId, 20).Where(n => n.TemplateName == "FollowUser").Where(n => n.LeadingActorUserId == sender.UserId); foreach (var notice in notices) { service.Delete(notice.Id); } } }
public void Create(FollowEntity T) { using (SqlConnection c = new SqlConnection(ConfigurationManager.ConnectionStrings["API"].ConnectionString)) { using (SqlCommand cmd = c.CreateCommand()) { if (T != null && T.FollowedId != 0 && T.FollowerId != 0) { cmd.CommandText = "SP_AddFollow"; cmd.CommandType = CommandType.StoredProcedure; SqlParameter FollowerId = new SqlParameter("FollowerId", T.FollowerId); SqlParameter FollowedId = new SqlParameter("FollowedId", T.FollowedId); cmd.Parameters.Add(FollowerId); cmd.Parameters.Add(FollowedId); c.Open(); cmd.ExecuteNonQuery(); } } } }
/// <summary> /// 关注后更新缓存 /// </summary> /// <param name="sender">关注实体</param> /// <param name="eventArgs">事件参数</param> void FollowUpdateCountModule_After(FollowEntity sender, CommonEventArgs eventArgs) { if (eventArgs.EventOperationType == EventOperationType.Instance().Create()) { //更新用户缓存 ICacheService cacheService = DIContainer.Resolve <ICacheService>(); RealTimeCacheHelper realTimeCacheHelper = EntityData.ForType(typeof(User)).RealTimeCacheHelper; if (cacheService.EnableDistributedCache) { realTimeCacheHelper.IncreaseEntityCacheVersion(sender.UserId); } else { string cacheKey = realTimeCacheHelper.GetCacheKeyOfEntity(sender.UserId); User user = cacheService.Get <User>(cacheKey); if (user != null) { user.FollowedCount++; } } } }
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { FollowEntity followEntity = Follower.GetComponent <FollowEntity>(); if (followEntity == null) { followEntity = Follower.AddComponent <FollowEntity>(); } followEntity.entityToFollow = entity; var controller = new ControllerData { lookSpeedH = speedH, lookSpeedV = speedV, zoomSpeed = zoom, dragSpeed = drag, Position = transform.position, Rotation = transform.rotation.eulerAngles }; dstManager.AddComponentData(entity, controller); }
public static List <FollowEntity> ToFollowEntities(User user) { user.NullCheck(nameof(user)); var result = new List <FollowEntity>(); if (user.Followers != null) { foreach (var follower in user.Followers) { var newFollower = new FollowEntity { FollowerId = follower.Id, FolloweeId = user.Id }; result.Add(newFollower); } } ; return(result); }
public async Task DoAcceptFollowRequestAsync(int currentUserId, int followerId, CancellationToken cancellationToken) { var entity = await _dbContext.FollowRequests .Where(_ => _.SourceId == followerId && _.TargetId == currentUserId) .FirstOrDefaultAsync(cancellationToken) .ConfigureAwait(false); _dbContext.FollowRequests.Remove(entity !); var newEntity = new FollowEntity { FollowerId = followerId, FollowedId = currentUserId }; await _dbContext.Follows .AddAsync(newEntity, cancellationToken) .ConfigureAwait(false); await _dbContext .SaveChangesAsync(cancellationToken) .ConfigureAwait(false); }
public FollowModel(FollowEntity entity) { Entity = entity; }
public static FollowModel ToModel(this FollowEntity entity) => new()
public static UserEntity ToUserEntity(User user) { user.NullCheck(nameof(user)); user.FirstName.EnforceNameCharacters(nameof(user.FirstName)); user.LastName.EnforceNameCharacters(nameof(user.LastName)); user.Email.EnforceEmailCharacters(nameof(user.Email)); if (!user.PhoneNumber.IsNullOrEmpty()) { user.PhoneNumber.EnforcePhoneNumberCharacters(nameof(user.PhoneNumber)); } if (!user.Status.IsNullOrEmpty()) { user.Status.EnforceNoSpecialCharacters(nameof(user.Status)); } var result = new UserEntity { Id = user.Id, ProfilePictureUrl = user.ProfilePictureUrl, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, PhoneNumber = user.PhoneNumber, BirthDate = user.BirthDate, Status = user.Status, Followees = new List <FollowEntity>(), Followers = new List <FollowEntity>() }; // Check for all people the user is following, assign a new follow entity with the followee as the person this user is following if (user.Followees != null) { var followees = user.Followees; foreach (var person in followees) { var newFollowee = new FollowEntity() { FollowerId = result.Id, FolloweeId = person.Id }; result.Followees.Add(newFollowee); } } ; // Vice versa if (user.Followers != null) { var followers = user.Followers; foreach (var person in followers) { var newFollower = new FollowEntity() { FollowerId = person.Id, FolloweeId = result.Id }; result.Followers.Add(newFollower); } } ; return(result); }