Exemple #1
0
        public async Task <IResultModel> Add(ClassAddModel model)
        {
            var entity = _mapper.Map <ClassEntity>(model);

            if (await _repository.Exists(entity))
            {
                return(ResultModel.Failed($"类名称({entity.Name})已存在"));
            }

            using (var tran = _repository.BeginTransaction())
            {
                if (await _repository.AddAsync(entity, tran))
                {
                    if (entity.BaseEntityType != BaseEntityType.Normal)
                    {
                        var propertyEntities = _baseEntityPropertyCollection.Get(entity.BaseEntityType);
                        propertyEntities.ForEach(m => m.ClassId = entity.Id);
                        //添加基类实体的属性
                        if (await _propertyRepository.AddAsync(propertyEntities, tran))
                        {
                            var methodEntity = _mapper.Map <ClassMethodEntity>(model.Method);
                            methodEntity.ClassId = entity.Id;
                            //添加方法
                            if (await _classMethodRepository.AddAsync(methodEntity, tran))
                            {
                                tran.Commit();
                                return(ResultModel.Success());
                            }
                        }
                    }
                }
            }

            return(ResultModel.Failed());
        }
Exemple #2
0
        public async Task <IResultModel> Add(ClassAddModel model)
        {
            var entity = _mapper.Map <ClassEntity>(model);

            if (await _repository.Exists(entity))
            {
                return(ResultModel.Failed($"类名称({entity.Name})已存在"));
            }

            _uow.BeginTransaction();
            if (await _repository.AddAsync(entity))
            {
                if (entity.BaseEntityType != BaseEntityType.Normal)
                {
                    var propertyEntities = _baseEntityPropertyCollection.Get(entity.BaseEntityType);
                    propertyEntities.ForEach(m => m.ClassId = entity.Id);
                    if (await _propertyRepository.AddAsync(propertyEntities))
                    {
                        _uow.Commit();
                        return(ResultModel.Success());
                    }
                }
            }
            _uow.Rollback();
            return(ResultModel.Failed());
        }