public static void ExecuteInUoW(Action <MiniSessionService> action, ISessionFactory factory = null) { factory = factory ?? ServiceLocator.Current.GetInstance <ISessionFactory>(); using (var manager = new MiniSessionService(factory)) { manager.OpenSessionWithTransaction(); UoWContext.Push(manager); action(manager); UoWContext.Pop(); manager.CommitChanges(); } }
public static T ExecuteInUoW <T>(Func <MiniSessionService, T> action) { var factory = ServiceLocator.Current.GetInstance <ISessionFactory>(); using (var manager = new MiniSessionService(factory)) { manager.OpenSessionWithTransaction(); UoWContext.Push(manager); var result = action(manager); UoWContext.Pop(); manager.CommitChanges(); return(result); } }