internal static void UnregisterUow(IUnitOfWorkEventHandler uow) { RemoveLost(); lock (RegisteredUoWs) { RegisteredUoWs.Remove(uow.Session.GetHashCode()); logger.Debug("UnitOfWork завершил работу. {0}", ActiveUowCountText()); } }
internal static void RegisterUow(IUnitOfWorkEventHandler uow) { RemoveLost(); lock (RegisteredUoWs) { var uowLink = new UowLink(uow); RegisteredUoWs.Add(uow.Session.GetHashCode(), uowLink); logger.Debug($"Зарегистрирован новый UnitOfWork. {ActiveUowCountText()}. Создан в {uowLink.Title.CallerMemberName} ({uowLink.Title.CallerFilePath}:{uowLink.Title.CallerLineNumber})"); } }
public void OnPostUpdate(PostUpdateEvent @event) { IUnitOfWorkEventHandler uow = GetUnitOfWork(@event.Session); if (uow != null) { uow.HibernateTracker?.OnPostUpdate(@event); } else { logger.Warn("Пришло событие OnPostUpdate но соответствующий сессии UnitOfWork не найден."); } }
public void OnPreLoad(PreLoadEvent @event) { IUnitOfWorkEventHandler uow = GetUnitOfWork(@event.Session); if (uow != null) { uow.OnPreLoad(@event); } else { logger.Warn("Пришло событие PreLoadEvent но соответствующий сессии UnitOfWork не найден."); } }
public UowLink(IUnitOfWorkEventHandler uow) { SessionHashCode = uow.Session.GetHashCode(); this.uow = new WeakReference(uow); this.Title = uow.ActionTitle; }