コード例 #1
0
 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);
                 });
             }
         }
     }
 }