public void UpdateProjBind(long pid) { if (pid != Pid) { using (var scope = new TransactionScope()) { _LazyEntity.Value.pid = pid; _FootPrintRepository.SaveChanges(); scope.Complete(); } if (_LazyEntity.Value.state == FootPrintState.Pass) { _EventPushManager.UpdateFootPrintProj(_Fid, pid); } } }
public void UpdateProjBind(long pid, long newPid) { if (pid != newPid) { var passFids = new List <long>(); using (var scope = new TransactionScope()) { var entitys = _FootPrintRepository.Entities.Where(p => p.pid == pid).ToArray(); foreach (var entity in entitys) { entity.pid = newPid; if (entity.state == FootPrintState.Pass) { passFids.Add(entity.fid); } } _FootPrintRepository.SaveChanges(); _UserFavoriteRepository.Update(p => p.pid == pid, p => new UserFavorite() { pid = newPid }); _UserViewProjFootListRecordRepository.Update(p => p.pid == pid, p => new UserViewProjFootListRecord() { pid = newPid }); scope.Complete(); } if (passFids.Any()) { var taskFactory = new TaskFactory(); foreach (var fid in passFids) { taskFactory.StartNew(() => { _EventPushManager.UpdateFootPrintProj(fid, newPid, transmitToMQ: true); }); } } } }