using System.Threading.Tasks; using Datory; using GxPress.Common.Exceptions; using System.Transactions; namespace GxPress.Service.Implement.Missive { public partial class MissiveService { /// /// 站内信撤回 /// /// /// public async Task RecallAsync(int missiveId) { //删除 var missive = await _missiveRepository.GetAsync(missiveId); if (missive == null) throw new BusinessException("站内信不存在!"); // var createdDate = Convert.ToDateTime(missive.CreatedDate); // if (createdDate.AddMinutes(5) > DateTime.Now) // throw new BusinessException("发送数据超过5分钟不能撤回!"); using (TransactionScope transactionScope = new TransactionScope()) { //删除middle下面的站内信 await _middleRepository.DeleteAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), missive.Id).Where(nameof(Entity.Middle.Middle.FolderType), 5).Where(nameof(Entity.Middle.Middle.IsAdmin), false)); //修改为草稿箱 await _middleRepository.UpdateAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), missive.Id).Where(nameof(Entity.Middle.Middle.FolderType), 5).Where(nameof(Entity.Middle.Middle.IsAdmin), true).Set(nameof(Entity.Middle.Middle.NoticeAddresseeType),2)); transactionScope.Complete(); } return true; } } }