public void FavoriteProj(long pid, bool isFavorite) { ExceptionHelper.ThrowIfTrue(pid <= 0, nameof(pid)); using (var scope = new TransactionScope()) { var entity = _UserFavoriteRepository.Entities.Where(p => p.uid == _Uid && p.pid == pid).FirstOrDefault(); var now = DateTime.Now; if (entity == null) { if (isFavorite) { entity = _UserFavoriteRepository.Add(new Data.UserFavorite() { pid = pid, uid = _Uid, isEnabled = true, Updated = now }); _FCRMAPIPushManager.CollectProj(_Uid, pid, 20, true); } } else { entity.isEnabled = isFavorite; entity.Updated = now; if (isFavorite) { _FCRMAPIPushManager.CollectProj(_Uid, pid, 0, true); } else { _FCRMAPIPushManager.CancelCollectProj(_Uid, pid, 0, true); } } _UserFavoriteRepository.SaveChanges(); scope.Complete(); } }