예제 #1
0
        public virtual bool Update(ZOperationResult operationResult, TEntityDTO entityDTO, bool isTransaction = true)
        {
            bool inTransaction = false;

            try
            {
                if (IsUpdate(operationResult))
                {
                    TEntity entity = (TEntity)entityDTO.ToData();

                    inTransaction = UnitOfWork.BeginTransaction(operationResult, isTransaction);
                    if (inTransaction)
                    {
                        string  logOperation = "U";
                        string  logMode;
                        bool    isAuditTrail = AuditTrailManager.IsAuditTrail(UnitOfWork.Domain, Repository.Entity, logOperation, out logMode);
                        TEntity entityBefore = null;
                        if (isAuditTrail)
                        {
                            entityBefore = Repository.GetById(entity.GetId());
                        }

                        if (Repository.Update(operationResult, entity))
                        {
                            if (UnitOfWork.Save(operationResult))
                            {
                                if (UnitOfWork.CommitTransaction(operationResult, isTransaction))
                                {
                                    entityDTO.FromData(entity);

                                    if (isAuditTrail)
                                    {
                                        AuditTrailManager.AuditTrail(operationResult,
                                                                     AuthenticationManager.UserName,
                                                                     UnitOfWork.Domain,
                                                                     Repository.Entity,
                                                                     logOperation,
                                                                     entityBefore,
                                                                     entity);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }
            finally
            {
                if (inTransaction && !operationResult.Ok)
                {
                    UnitOfWork.RollbackTransaction(operationResult, isTransaction);
                }
            }

            return(operationResult.Ok);
        }
예제 #2
0
        public virtual bool Delete(ZOperationResult operationResult, TEntityDTO entityDTO)
        {
            try
            {
                if (IsDelete(operationResult))
                {
                    TEntity entity = (TEntity)entityDTO.ToData();

                    if (Repository.Delete(operationResult, entity))
                    {
                        if (UnitOfWork.Save(operationResult))
                        {
                            string logOperation = "D";
                            AuditTrailManager.AuditTrail(operationResult,
                                                         AuthenticationManager.UserName,
                                                         UnitOfWork.Domain,
                                                         Repository.Entity,
                                                         logOperation,
                                                         entity,
                                                         null);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }

            return(operationResult.Ok);
        }
예제 #3
0
        public virtual bool Create(ZOperationResult operationResult, TEntity entity)
        {
            try
            {
                if (IsCreate(operationResult))
                {
                    if (Repository.Create(operationResult, entity))
                    {
                        if (UnitOfWork.Save(operationResult))
                        {
                            string logOperation = "C";
                            AuditTrailManager.AuditTrail(operationResult,
                                                         AuthenticationManager.UserName,
                                                         UnitOfWork.Domain,
                                                         Repository.Entity,
                                                         logOperation,
                                                         null,
                                                         entity);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }

            return(operationResult.Ok);
        }
예제 #4
0
        public virtual bool Update(ZOperationResult operationResult, TEntityDTO entityDTO, bool isTransaction = true)
        {
            bool inTransaction = false;

            try
            {
                if (IsUpdate(operationResult))
                {
                    TEntity entity = (TEntity)entityDTO.ToData();

                    inTransaction = UnitOfWork.BeginTransaction(operationResult, isTransaction);
                    if (inTransaction)
                    {
                        string  logOperation = "U";
                        bool    isAuditTrail = AuditTrailManager.IsAuditTrail(UnitOfWork.Domain, Repository.Entity, logOperation);
                        TEntity entityBefore = null;
                        if (isAuditTrail)
                        {
                            entityBefore = Repository.GetById(entity.GetId());
                        }

                        if (Repository.Update(operationResult, entity))
                        {
                            if (UnitOfWork.Save(operationResult))
                            {
                                if (UnitOfWork.CommitTransaction(operationResult, isTransaction))
                                {
                                    // ???
                                    //LibraryHelper.Clone((TEntityDTO)Activator.CreateInstance(typeof(TEntityDTO), entity), entityDTO);
                                    entityDTO.FromData(entity);

                                    if (isAuditTrail)
                                    {
                                        AuditTrailManager.AuditTrail(operationResult, UnitOfWork.Domain, Repository.Entity, logOperation, entityBefore, entity);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }
            finally
            {
                if (inTransaction && !operationResult.Ok)
                {
                    UnitOfWork.RollbackTransaction(operationResult, isTransaction);
                }
            }

            return(operationResult.Ok);
        }
예제 #5
0
        public virtual bool Create(ZOperationResult operationResult, TEntityDTO entityDTO, bool isTransaction = true)
        {
            bool inTransaction = false;

            try
            {
                if (IsCreate(operationResult))
                {
                    TEntity entity = (TEntity)entityDTO.ToData();

                    inTransaction = UnitOfWork.BeginTransaction(operationResult, isTransaction);
                    if (inTransaction)
                    {
                        if (Repository.Create(operationResult, entity))
                        {
                            if (UnitOfWork.Save(operationResult))
                            {
                                if (UnitOfWork.CommitTransaction(operationResult, isTransaction))
                                {
                                    entityDTO.FromData(entity);

                                    string logOperation = "C";
                                    AuditTrailManager.AuditTrail(operationResult,
                                                                 AuthenticationManager.UserName,
                                                                 UnitOfWork.Domain,
                                                                 Repository.Entity,
                                                                 logOperation,
                                                                 null,
                                                                 entity);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }
            finally
            {
                if (inTransaction && !operationResult.Ok)
                {
                    UnitOfWork.RollbackTransaction(operationResult, isTransaction);
                }
            }

            return(operationResult.Ok);
        }
예제 #6
0
        public bool Update(ZOperationResult operationResult, TEntity entity, bool isTransaction = true)
        {
            bool inTransaction = false;

            try
            {
                if (IsUpdate(operationResult))
                {
                    inTransaction = UnitOfWork.BeginTransaction(operationResult, isTransaction);
                    if (inTransaction)
                    {
                        string  logOperation = "U";
                        bool    isAuditTrail = AuditTrailManager.IsAuditTrail(UnitOfWork.Domain, Repository.Entity, logOperation);
                        TEntity entityBefore = null;
                        if (isAuditTrail)
                        {
                            entityBefore = Repository.GetById(entity.GetId());
                        }

                        if (Repository.Update(operationResult, entity))
                        {
                            if (UnitOfWork.Save(operationResult))
                            {
                                if (UnitOfWork.CommitTransaction(operationResult, isTransaction))
                                {
                                    if (isAuditTrail)
                                    {
                                        AuditTrailManager.AuditTrail(operationResult, UnitOfWork.Domain, Repository.Entity, logOperation, entityBefore, entity);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }
            finally
            {
                if (inTransaction && !operationResult.Ok)
                {
                    UnitOfWork.RollbackTransaction(operationResult, isTransaction);
                }
            }

            return(operationResult.Ok);
        }
예제 #7
0
        public virtual bool Delete(ZOperationResult operationResult, TEntity entity, bool isTransaction = true)
        {
            bool inTransaction = false;

            try
            {
                if (IsDelete(operationResult))
                {
                    inTransaction = UnitOfWork.BeginTransaction(operationResult, isTransaction);
                    if (inTransaction)
                    {
                        if (Repository.Delete(operationResult, entity))
                        {
                            if (UnitOfWork.Save(operationResult))
                            {
                                if (UnitOfWork.CommitTransaction(operationResult, isTransaction))
                                {
                                    string logOperation = "D";
                                    AuditTrailManager.AuditTrail(operationResult,
                                                                 AuthenticationManager.UserName,
                                                                 UnitOfWork.Domain,
                                                                 Repository.Entity,
                                                                 logOperation,
                                                                 entity,
                                                                 null);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                (operationResult as ZOperationResult).ParseException(exception);
            }
            finally
            {
                if (inTransaction && !operationResult.Ok)
                {
                    UnitOfWork.RollbackTransaction(operationResult, isTransaction);
                }
            }

            return(operationResult.Ok);
        }
예제 #8
0
        public virtual bool Update(ZOperationResult operationResult, TEntityDTO entityDTO)
        {
            try
            {
                if (IsUpdate(operationResult))
                {
                    TEntity entity = (TEntity)entityDTO.ToData();

                    string  logOperation = "U";
                    string  logMode;
                    bool    isAuditTrail = AuditTrailManager.IsAuditTrail(UnitOfWork.Domain, Repository.Entity, logOperation, out logMode);
                    TEntity entityBefore = null;
                    if (isAuditTrail)
                    {
                        entityBefore = Repository.GetById(entity.GetId());
                    }

                    if (Repository.Update(operationResult, entity))
                    {
                        if (UnitOfWork.Save(operationResult))
                        {
                            entityDTO.FromData(entity);

                            if (isAuditTrail)
                            {
                                AuditTrailManager.AuditTrail(operationResult,
                                                             AuthenticationManager.UserName,
                                                             UnitOfWork.Domain,
                                                             Repository.Entity,
                                                             logOperation,
                                                             entityBefore,
                                                             entity);
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }

            return(operationResult.Ok);
        }