/// <summary> /// 至少有当Receiver和Publisher都要求删除的时候。db中才会真正删除 /// </summary> /// <param name="currentUser"></param> /// <param name="personalMessageDao"></param> public virtual void Delete(User currentUser, IPersonalMessageDao personalMessageDao) { if (currentUser == null) { throw new ArgumentNullException("currentUser"); } if (personalMessageDao == null) { throw new ArgumentNullException("personalMessageDao"); } if (Receiver.Id == currentUser.Id) { DeleteStatus |= PersonalMessageStatus.Receiver; } else { DeleteStatus |= PersonalMessageStatus.Publisher; } if (this.DeleteStatus.HasFlag(PersonalMessageStatus.Publisher) && this.DeleteStatus.HasFlag(PersonalMessageStatus.Receiver)) { personalMessageDao.Delete(this); } }