public override int Update(MaterialTypeBO vo) { if (Repository.Count(x => x.Code == vo.Code) > 0) { throw new BusinessException(ResponseCode.CodeAlreadyExists.Format(vo.Code)); } if (vo.Configs != null && vo.Configs.Count > 0) { MaterialTypeConfigRepository.Delete(x => x.MaterialTypeId == vo.Id); MaterialTypeConfigRepository.BulkInsert(Mapper.Map <List <MaterialTypeConfig> >(vo.Configs)); if (vo.OverrideMaterialConfigs.HasValue && vo.OverrideMaterialConfigs.Value) //覆盖物料的参数配置 { var materialIds = MaterialRepository.Find(x => x.TypeId == vo.Id).Select(x => x.Id); foreach (var config in vo.Configs) { var configs = MaterialConfigRepository.Find(x => materialIds.Contains(x.MaterialId)); foreach (var item in configs) { item.ConfigValue = config.ConfigDefaultValue; } MaterialConfigRepository.BulkUpdate(configs); } } } return(base.Update(vo)); }
public override int Delete(int?id) { if (MaterialRepository.Count(x => x.TypeId == id) > 0) { throw new BusinessException(ResponseCode.MaterialTypeHasBeenUsed); } MaterialTypeConfigRepository.Delete(x => x.MaterialTypeId == id); return(base.Delete(id)); }