示例#1
0
        public virtual bool Delete(ZOperationResult operationResult, TEntity entity)
        {
            try
            {
                if (UnitOfWork.BeforeDelete(operationResult, entity))
                {
                    if (BeforeDelete(operationResult, entity))
                    {
                        string   predicate = DataDictionary.LINQWhere;
                        object[] ids       = entity.GetId();
                        Expression <Func <TEntity, bool> > filter = System.Linq.Dynamic.DynamicExpression.ParseLambda <TEntity, bool>(predicate, ids);

                        Collection.DeleteOne <TEntity>(filter);

                        if (AfterDelete(operationResult, entity))
                        {
                            UnitOfWork.AfterDelete(operationResult, entity);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseExceptionMongoDB(exception);
            }

            return(operationResult.Ok);
        }
示例#2
0
        public virtual bool Update(ZOperationResult operationResult, TEntity entity)
        {
            try
            {
                if (entity.BeforeUpdate(operationResult))
                {
                    if (BeforeUpdate(operationResult, entity))
                    {
                        //if (UnitOfWork.BeforeUpdate(operationResult, entity))
                        {
                            string   predicate = Profile.LINQWhere;
                            object[] ids       = entity.GetId();
                            Expression <Func <TEntity, bool> > filter = System.Linq.Dynamic.DynamicExpression.ParseLambda <TEntity, bool>(predicate, ids);

                            Collection.ReplaceOne <TEntity>(filter, entity);

                            if (entity.AfterUpdate(operationResult))
                            {
                                AfterUpdate(operationResult, entity);
                                //{
                                //    UnitOfWork.AfterUpdate(operationResult, entity);
                                //}
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseExceptionMongoDB(exception);
            }

            return(operationResult.Ok);
        }
示例#3
0
        public virtual bool Create(ZOperationResult operationResult, TEntity entity)
        {
            try
            {
                if (UnitOfWork.BeforeCreate(operationResult, entity))
                {
                    if (BeforeCreate(operationResult, entity))
                    {
                        object id = GetNextSequence();
                        if (id != null)
                        {
                            (entity as ZDataBase).SetId(new object[] { id });
                        }

                        Collection.InsertOne(entity);

                        if (AfterCreate(operationResult, entity))
                        {
                            UnitOfWork.AfterCreate(operationResult, entity);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseExceptionMongoDB(exception);
            }

            return(operationResult.Ok);
        }