Esempio n. 1
0
 internal UnitOfWorkChild(ISessionProvider sessionProvider, TRootEntity childRoot, IUnitOfWork parentUoW, UnitOfWorkTitle actionTitle) : base(sessionProvider)
 {
     IsNew          = childRoot.Id == 0;
     ActionTitle    = actionTitle;
     this.parentUoW = parentUoW;
     Root           = childRoot;
 }
Esempio n. 2
0
        /// <summary>
        /// Создаем Unit of Work загружая сущность по id.
        /// </summary>
        /// <returns>UnitOfWork.</returns>
        /// <typeparam name="TEntity">Тип объекта доменной модели, должен реализовывать интерфейс IDomainObject.</typeparam>
        public IUnitOfWorkGeneric <TEntity> CreateForRoot <TEntity>(int id, string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0) where TEntity : class, IDomainObject, new()
        {
            var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber);
            var uow   = new UnitOfWork <TEntity>(SessionProvider, id, title);

            return(uow);
        }
Esempio n. 3
0
        /// <summary>
        /// Создаем Unit of Work с новым экземляром сущности переданным в виде аргумента
        /// </summary>
        /// <returns>UnitOfWork.</returns>
        /// <typeparam name="TEntity">Тип объекта доменной модели, должен реализовывать интерфейс IDomainObject.</typeparam>
        public static IUnitOfWorkGeneric <TEntity> CreateWithNewRoot <TEntity>(TEntity entity, string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0) where TEntity : class, IDomainObject, new()
        {
            var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber);
            var uow   = new UnitOfWork <TEntity>(entity, title);

            return(uow);
        }
        /// <summary>
        /// Создаем дочерний Unit of Work с новым экземляром сущности, не использующий коммит при сохранении Root
        /// </summary>
        /// <returns>UnitOfWork.</returns>
        /// <typeparam name="TChildRootEntity">Тип объекта доменной модели, должен реализовывать интерфейс IDomainObject.</typeparam>
        public IUnitOfWorkGeneric <TChildRootEntity> CreateWithNewChildRoot <TChildRootEntity>(IUnitOfWork parentUoW, string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0)
            where TChildRootEntity : class, IDomainObject, new()
        {
            var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber);
            var uow   = new UnitOfWorkChild <TChildRootEntity>(null, new TChildRootEntity(), parentUoW, title);

            uow.SessionScopeEntitySaved += (sender, e) => { parentUoW.RaiseSessionScopeEntitySaved(e.UpdatedSubjects); };
            return(uow);
        }
Esempio n. 5
0
 internal UnitOfWork(TRootEntity root, UnitOfWorkTitle title)
 {
     IsNew       = true;
     Root        = root;
     ActionTitle = title;
     if (Root is IBusinessObject)
     {
         ((IBusinessObject)Root).UoW = this;
     }
 }
Esempio n. 6
0
 internal UnitOfWork(ISessionProvider sessionProvider, TRootEntity root, UnitOfWorkTitle title) : base(sessionProvider)
 {
     IsNew       = true;
     Root        = root;
     ActionTitle = title;
     if (Root is IBusinessObject)
     {
         ((IBusinessObject)Root).UoW = this;
     }
 }
Esempio n. 7
0
 internal UnitOfWorkWithoutRoot(ISessionProvider sessionProvider, UnitOfWorkTitle title) : base(sessionProvider)
 {
     IsNew       = false;
     ActionTitle = title;
 }
Esempio n. 8
0
 internal UnitOfWork(int id, UnitOfWorkTitle title)
 {
     IsNew       = false;
     ActionTitle = title;
     Root        = GetById <TRootEntity>(id);
 }
Esempio n. 9
0
        /// <summary>
        /// Создаем Unit of Work без корренной сущьности.
        /// </summary>
        /// <returns>UnitOfWork.</returns>
        public static IUnitOfWork CreateWithoutRoot(string userActionTitle = null, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0)
        {
            var title = new UnitOfWorkTitle(userActionTitle, callerMemberName, callerFilePath, callerLineNumber);

            return(new UnitOfWorkWithoutRoot(title));
        }
Esempio n. 10
0
 internal UnitOfWork(ISessionProvider sessionProvider, int id, UnitOfWorkTitle title) : base(sessionProvider)
 {
     IsNew       = false;
     ActionTitle = title;
     Root        = GetById <TRootEntity>(id);
 }
Esempio n. 11
0
 internal UnitOfWorkWithoutRoot(UnitOfWorkTitle title)
 {
     IsNew       = false;
     ActionTitle = title;
 }