/// <summary> /// 添加屏蔽对象 /// </summary> /// <param name="userId">屏蔽人UserId</param> /// <param name="objectType">被屏蔽对象类型</param> /// <param name="objectId">被屏蔽对象Id</param> /// <param name="objectName">被屏蔽对象名称</param> public bool Create(long userId, int objectType, long objectId, string objectName) { //在Repository添加被屏蔽对象时,需要检查userId + objectType + objectId 是否已存在,如果已存在则不添加 UserBlockedObject userBlockedObject = new UserBlockedObject { ObjectId = objectId, ObjectName = objectName, ObjectType = objectType, UserId = userId, DateCreated = DateTime.UtcNow }; EventBus <UserBlockedObject> .Instance().OnBefore(userBlockedObject, new CommonEventArgs(EventOperationType.Instance().Create())); if (IsBlocked(userId, objectType, objectId)) { return(false); } object blockId = userBlockRepository.Insert(userBlockedObject) ?? 0; if (Convert.ToInt64(blockId) > 0) { EventBus <UserBlockedObject> .Instance().OnAfter(userBlockedObject, new CommonEventArgs(EventOperationType.Instance().Create())); return(true); } return(false); }
/// <summary> /// 删除被屏蔽对象 /// </summary> /// <param name="id">Id</param> public bool Delete(long id) { UserBlockedObject userBlockedObject = userBlockRepository.Get(id); EventBus <UserBlockedObject> .Instance().OnBefore(userBlockedObject, new CommonEventArgs(EventOperationType.Instance().Delete())); if (userBlockedObject != null && userBlockRepository.Delete(userBlockedObject) > 0) { EventBus <UserBlockedObject> .Instance().OnAfter(userBlockedObject, new CommonEventArgs(EventOperationType.Instance().Delete())); return(true); } return(false); }
/// <summary> /// 屏蔽用户/取消屏蔽时动态处理 /// </summary> /// <param name="sender">关注实体</param> /// <param name="eventArgs">事件参数</param> void UserBlockedObjectActivityEventModule_After(UserBlockedObject sender, CommonEventArgs eventArgs) { int ownerType = -1; if (sender.ObjectType == BlockedObjectTypes.Instance().User()) ownerType = ActivityOwnerTypes.Instance().User(); else if (sender.ObjectType == BlockedObjectTypes.Instance().Group()) ownerType = ActivityOwnerTypes.Instance().Group(); else return; ActivityService activityService = new ActivityService(); if (EventOperationType.Instance().Create() == eventArgs.EventOperationType) { activityService.RemoveInboxAboutOwner(sender.UserId, sender.ObjectId, ownerType); } else if (EventOperationType.Instance().Delete() == eventArgs.EventOperationType) { activityService.TraceBackInboxAboutOwner(sender.UserId, sender.ObjectId, ownerType); } }
/// <summary> /// 添加屏蔽对象 /// </summary> /// <param name="userId">屏蔽人UserId</param> /// <param name="objectType">被屏蔽对象类型</param> /// <param name="objectId">被屏蔽对象Id</param> /// <param name="objectName">被屏蔽对象名称</param> public bool Create(long userId, int objectType, long objectId, string objectName) { //在Repository添加被屏蔽对象时,需要检查userId + objectType + objectId 是否已存在,如果已存在则不添加 UserBlockedObject userBlockedObject = new UserBlockedObject { ObjectId = objectId, ObjectName = objectName, ObjectType = objectType, UserId = userId, DateCreated = DateTime.UtcNow }; EventBus<UserBlockedObject>.Instance().OnBefore(userBlockedObject, new CommonEventArgs(EventOperationType.Instance().Create())); if (IsBlocked(userId, objectType, objectId)) return false; object blockId = userBlockRepository.Insert(userBlockedObject) ?? 0; if (Convert.ToInt64(blockId) > 0) { EventBus<UserBlockedObject>.Instance().OnAfter(userBlockedObject, new CommonEventArgs(EventOperationType.Instance().Create())); return true; } return false; }