using System.Threading.Tasks; using Datory; using GxPress.EnumConst; using System.Transactions; namespace GxPress.Service.Implement { public partial class FlowService { /// /// 撤回 /// /// /// public async Task RecallAsync(int flowId, int userId) { try { using (var transactions = new TransactionScope()) { var flow = await _flowRepository.GetAsync(flowId); if (flow == null || flow.UserId != userId) throw new Common.Exceptions.BusinessException("非本人操作!"); //删除middle await middleRepository.DeleteAsync(Q.Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Inbox.GetHashCode()).Where(nameof(Entity.Middle.Middle.MiddleId), flowId).WhereNot(nameof(Entity.Middle.Middle.UserId), flow.UserId)); //修改状态 await middleRepository.UpdateAsync(Q.Where(nameof(Entity.Middle.Middle.FolderType), AllTypeConst.Inbox.GetHashCode()).Where(nameof(Entity.Middle.Middle.MiddleId), flowId).Where(nameof(Entity.Middle.Middle.UserId), flow.UserId).Set(nameof(Entity.Middle.Middle.IsRecall), true)); transactions.Complete(); } } catch { return false; } return true; } } }