internal void InsertWithTransaction(TableMetadataInfo info, int taxis, IDbTransaction trans) { if (IsExistsWithTransaction(info.TableName, info.AttributeName, trans)) { return; } const string sqlString = "INSERT INTO siteserver_TableMetadata (TableName, AttributeName, DataType, DataLength, Taxis, IsSystem) VALUES (@TableName, @AttributeName, @DataType, @DataLength, @Taxis, @IsSystem)"; var insertParms = new IDataParameter[] { GetParameter(ParmTableCollectionInfoEnname, DataType.VarChar, 50, info.TableName), GetParameter(ParmAttributeName, DataType.VarChar, 50, info.AttributeName), GetParameter(ParmDataType, DataType.VarChar, 50, info.DataType.Value), GetParameter(ParmDataLength, DataType.Integer, info.DataLength), GetParameter(ParmTaxis, DataType.Integer, taxis), GetParameter(ParmIsSystem, DataType.VarChar, 18, info.IsSystem.ToString()) }; ExecuteNonQuery(trans, sqlString, insertParms); if (info.StyleInfo != null) { info.StyleInfo.TableName = info.TableName; info.StyleInfo.AttributeName = info.AttributeName; DataProvider.TableStyleDao.InsertWithTransaction(info.StyleInfo, trans); TableStyleManager.IsChanged = true; } TableMetadataManager.ClearCache(); }
public void Insert(TableMetadataInfo info) { if (IsExists(info.TableName, info.AttributeName)) { return; } const string sqlString = "INSERT INTO siteserver_TableMetadata (TableName, AttributeName, DataType, DataLength, Taxis, IsSystem) VALUES (@TableName, @AttributeName, @DataType, @DataLength, @Taxis, @IsSystem)"; var parameters = new IDataParameter[] { GetParameter(ParmTableCollectionInfoEnname, DataType.VarChar, 50, info.TableName), GetParameter(ParmAttributeName, DataType.VarChar, 50, info.AttributeName), GetParameter(ParmDataType, DataType.VarChar, 50, info.DataType.Value), GetParameter(ParmDataLength, DataType.Integer, info.DataLength), GetParameter(ParmTaxis, DataType.Integer, GetMaxTaxis(info.TableName) + 1), GetParameter(ParmIsSystem, DataType.VarChar, 18, info.IsSystem.ToString()) }; ExecuteNonQuery(sqlString, parameters); DataProvider.TableDao.UpdateAttributeNum(info.TableName); DataProvider.TableDao.UpdateIsChangedAfterCreatedInDbToTrue(info.TableName); TableMetadataManager.ClearCache(); }
public bool IsColumnEquals(TableMetadataInfo metadataInfo, TableColumnInfo columnInfo) { if (!StringUtils.EqualsIgnoreCase(metadataInfo.AttributeName, columnInfo.ColumnName)) return false; if (metadataInfo.DataType != columnInfo.DataType) return false; if (metadataInfo.DataLength != columnInfo.Length) return false; return true; }
public List <string> GetAddColumnsSqlString(string tableName, TableMetadataInfo metadataInfo) { var sqlList = new List <string>(); var columnSqlString = SqlUtils.GetColumnSqlString(metadataInfo.DataType, metadataInfo.AttributeName, metadataInfo.DataLength); var alterSqlString = SqlUtils.GetAddColumnsSqlString(tableName, columnSqlString); sqlList.Add(alterSqlString); return(sqlList); }
protected List <string> GetAlterAddColumnSqls(string tableEnName, TableMetadataInfo metadataInfo) { var sqlList = new List <string>(); var columnSqlString = SqlUtils.GetColumnSqlString(metadataInfo.DataType, metadataInfo.AttributeName, metadataInfo.DataLength); string alterSqlString = $"ALTER TABLE [{tableEnName}] ADD {columnSqlString}"; sqlList.Add(alterSqlString); return(sqlList); }
private static void ContentTableUpdateMetadatas(string tableName, List <TableColumn> tableColumns) { var metadataInfoListToInsert = new List <TableMetadataInfo>(); var metadataInfoListToUpdate = new List <TableMetadataInfo>(); foreach (var tableColumn in tableColumns) { if (string.IsNullOrEmpty(tableColumn.AttributeName) || ContentAttribute.AllAttributesLowercase.Contains(tableColumn.AttributeName.ToLower())) { continue; } if (!TableMetadataManager.IsAttributeNameExists(tableName, tableColumn.AttributeName)) { var metadataInfo = new TableMetadataInfo(0, tableName, tableColumn.AttributeName, tableColumn.DataType, tableColumn.DataLength, 0, true); metadataInfoListToInsert.Add(metadataInfo); } else { var isEquals = true; var metadataInfo = TableMetadataManager.GetTableMetadataInfo(tableName, tableColumn.AttributeName); if (metadataInfo.DataType != tableColumn.DataType) { isEquals = false; metadataInfo.DataType = tableColumn.DataType; } if (metadataInfo.DataLength != tableColumn.DataLength) { isEquals = false; metadataInfo.DataLength = tableColumn.DataLength; } if (isEquals) { continue; } metadataInfoListToUpdate.Add(metadataInfo); } } foreach (var metadataInfo in metadataInfoListToInsert) { DataProvider.TableMetadataDao.Insert(metadataInfo); } foreach (var metadataInfo in metadataInfoListToUpdate) { DataProvider.TableMetadataDao.Update(metadataInfo); } }
private static AtomEntry GetAtomEntry(TableMetadataInfo metaInfo) { var entry = AtomUtility.GetEmptyEntry(); AtomUtility.AddDcElement(entry.AdditionalElements, "TableMetadataID", metaInfo.TableMetadataId.ToString()); AtomUtility.AddDcElement(entry.AdditionalElements, "AuxiliaryTableENName", metaInfo.AuxiliaryTableEnName); AtomUtility.AddDcElement(entry.AdditionalElements, "AttributeName", metaInfo.AttributeName); AtomUtility.AddDcElement(entry.AdditionalElements, "DataType", EDataTypeUtils.GetValue(metaInfo.DataType)); AtomUtility.AddDcElement(entry.AdditionalElements, "DataLength", metaInfo.DataLength.ToString()); AtomUtility.AddDcElement(entry.AdditionalElements, "Taxis", metaInfo.Taxis.ToString()); AtomUtility.AddDcElement(entry.AdditionalElements, "IsSystem", metaInfo.IsSystem.ToString()); return(entry); }
public TableMetadataInfo GetTableMetadataInfo(int id) { TableMetadataInfo info = null; var parms = new IDataParameter[] { GetParameter(ParmId, DataType.Integer, id) }; using (var rdr = ExecuteReader(SqlSelectTableMetadata, parms)) { if (rdr.Read()) { var i = 0; info = new TableMetadataInfo(GetInt(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), DataTypeUtils.GetEnumType(GetString(rdr, i++)), GetInt(rdr, i++), GetInt(rdr, i++), GetBool(rdr, i)); } rdr.Close(); } return(info); }
public List <TableMetadataInfo> GetTableMetadataInfoList(string tableName) { var list = new List <TableMetadataInfo>(); var parms = new IDataParameter[] { GetParameter(ParmTableCollectionInfoEnname, DataType.VarChar, 50, tableName) }; using (var rdr = ExecuteReader(SqlSelectAllTableMetadataByEnname, parms)) { while (rdr.Read()) { var i = 0; var info = new TableMetadataInfo(GetInt(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), DataTypeUtils.GetEnumType(GetString(rdr, i++)), GetInt(rdr, i++), GetInt(rdr, i++), GetBool(rdr, i)); list.Add(info); } rdr.Close(); } return(list); }
public TableMetadataInfo GetTableMetadataInfo(string tableName, string attributeName) { TableMetadataInfo info = null; var parms = new IDataParameter[] { GetParameter(ParmTableCollectionInfoEnname, DataType.VarChar, 50, tableName), GetParameter(ParmAttributeName, DataType.VarChar, 50, attributeName) }; using (var rdr = ExecuteReader(SqlSelectTableMetadataByTableNameAndAttributeName, parms)) { if (rdr.Read()) { var i = 0; info = new TableMetadataInfo(GetInt(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), DataTypeUtils.GetEnumType(GetString(rdr, i++)), GetInt(rdr, i++), GetInt(rdr, i++), GetBool(rdr, i)); } rdr.Close(); } return(info); }
public void Update(TableMetadataInfo info) { var isSqlChanged = true; var originalInfo = GetTableMetadataInfo(info.TableMetadataId); if (originalInfo != null) { if (info.AuxiliaryTableEnName == originalInfo.AuxiliaryTableEnName && info.AttributeName == originalInfo.AttributeName && info.DataType == originalInfo.DataType && info.DataLength == originalInfo.DataLength && info.Taxis == originalInfo.Taxis) { isSqlChanged = false; } } var updateParms = new IDataParameter[] { GetParameter(ParmAuxiliaryTableEnname, EDataType.VarChar, 50, info.AuxiliaryTableEnName), GetParameter(ParmAttributeName, EDataType.VarChar, 50, info.AttributeName), GetParameter(ParmDataType, EDataType.VarChar, 50, EDataTypeUtils.GetValue(info.DataType)), GetParameter(ParmDataLength, EDataType.Integer, info.DataLength), GetParameter(ParmIsSystem, EDataType.VarChar, 18, info.IsSystem.ToString()), GetParameter(ParmTableMetadataId, EDataType.Integer, info.TableMetadataId) }; using (var conn = GetConnection()) { conn.Open(); ExecuteNonQuery(conn, SqlUpdateTableMetadata, updateParms); if (isSqlChanged) { BaiRongDataProvider.TableCollectionDao.UpdateIsChangedAfterCreatedInDb(true, info.AuxiliaryTableEnName); } TableManager.IsChanged = true; } }
public List <TableMetadataInfo> GetDefaultTableMetadataInfoList(string tableName) { var list = new List <TableMetadataInfo>(); var metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.SubTitle, DataType.VarChar, 255, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.ImageUrl, DataType.VarChar, 200, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.VideoUrl, DataType.VarChar, 200, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.FileUrl, DataType.VarChar, 200, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Content, DataType.Text, 16, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Summary, DataType.Text, 16, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Author, DataType.VarChar, 255, 0, true); list.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Source, DataType.VarChar, 255, 0, true); list.Add(metadataInfo); return(list); }
public void Update(TableMetadataInfo info) { var isSqlChanged = true; var originalInfo = GetTableMetadataInfo(info.Id); if (originalInfo != null) { if (StringUtils.EqualsIgnoreCase(info.TableName, originalInfo.TableName) && StringUtils.EqualsIgnoreCase(info.AttributeName, originalInfo.AttributeName) && info.DataType == originalInfo.DataType && info.DataLength == originalInfo.DataLength && info.IsSystem == originalInfo.IsSystem) { isSqlChanged = false; } } if (!isSqlChanged) { return; } var updateParms = new IDataParameter[] { GetParameter(ParmTableCollectionInfoEnname, DataType.VarChar, 50, info.TableName), GetParameter(ParmAttributeName, DataType.VarChar, 50, info.AttributeName), GetParameter(ParmDataType, DataType.VarChar, 50, info.DataType.Value), GetParameter(ParmDataLength, DataType.Integer, info.DataLength), GetParameter(ParmIsSystem, DataType.VarChar, 18, info.IsSystem.ToString()), GetParameter(ParmId, DataType.Integer, info.Id) }; ExecuteNonQuery(SqlUpdateTableMetadata, updateParms); DataProvider.TableDao.UpdateIsChangedAfterCreatedInDbToTrue(info.TableName); TableMetadataManager.ClearCache(); }
public void Insert(TableMetadataInfo info) { var sqlString = "INSERT INTO bairong_TableMetadata (AuxiliaryTableENName, AttributeName, DataType, DataLength, Taxis, IsSystem) VALUES (@AuxiliaryTableENName, @AttributeName, @DataType, @DataLength, @Taxis, @IsSystem)"; var insertParms = new IDataParameter[] { GetParameter(ParmAuxiliaryTableEnname, EDataType.VarChar, 50, info.AuxiliaryTableEnName), GetParameter(ParmAttributeName, EDataType.VarChar, 50, info.AttributeName), GetParameter(ParmDataType, EDataType.VarChar, 50, EDataTypeUtils.GetValue(info.DataType)), GetParameter(ParmDataLength, EDataType.Integer, info.DataLength), GetParameter(ParmTaxis, EDataType.Integer, GetMaxTaxis(info.AuxiliaryTableEnName) + 1), GetParameter(ParmIsSystem, EDataType.VarChar, 18, info.IsSystem.ToString()) }; using (var conn = GetConnection()) { conn.Open(); ExecuteNonQuery(conn, sqlString, insertParms); BaiRongDataProvider.TableCollectionDao.UpdateAttributeNum(info.AuxiliaryTableEnName); BaiRongDataProvider.TableCollectionDao.UpdateIsChangedAfterCreatedInDb(true, info.AuxiliaryTableEnName); TableManager.IsChanged = true; } }
internal void InsertWithTransaction(TableMetadataInfo info, EAuxiliaryTableType tableType, int taxis, IDbTransaction trans) { var sqlString = "INSERT INTO bairong_TableMetadata (AuxiliaryTableENName, AttributeName, DataType, DataLength, Taxis, IsSystem) VALUES (@AuxiliaryTableENName, @AttributeName, @DataType, @DataLength, @Taxis, @IsSystem)"; var insertParms = new IDataParameter[] { GetParameter(ParmAuxiliaryTableEnname, EDataType.VarChar, 50, info.AuxiliaryTableEnName), GetParameter(ParmAttributeName, EDataType.VarChar, 50, info.AttributeName), GetParameter(ParmDataType, EDataType.VarChar, 50, EDataTypeUtils.GetValue(info.DataType)), GetParameter(ParmDataLength, EDataType.Integer, info.DataLength), GetParameter(ParmTaxis, EDataType.Integer, taxis), GetParameter(ParmIsSystem, EDataType.VarChar, 18, info.IsSystem.ToString()) }; ExecuteNonQuery(trans, sqlString, insertParms); if (info.StyleInfo != null) { info.StyleInfo.TableName = info.AuxiliaryTableEnName; info.StyleInfo.AttributeName = info.AttributeName; BaiRongDataProvider.TableStyleDao.InsertWithTransaction(info.StyleInfo, EAuxiliaryTableTypeUtils.GetTableStyle(tableType), trans); TableStyleManager.IsChanged = true; } TableManager.IsChanged = true; }
public override void Submit_OnClick(object sender, EventArgs e) { var isChanged = false; if (Body.IsQueryExists("TableMetadataID")) { var tableMetadataId = Body.GetQueryInt("TableMetadataID"); var info = DataProvider.TableMetadataDao.GetTableMetadataInfo(tableMetadataId); info.TableName = _tableName; info.AttributeName = TbAttributeName.Text; info.DataType = DataTypeUtils.GetEnumType(DdlDataType.SelectedValue); if (info.DataType == DataType.VarChar) { info.DataLength = TranslateUtils.ToInt(TbDataLength.Text); var maxLength = SqlUtils.GetMaxLengthForNVarChar(); if (info.DataLength <= 0 || info.DataLength > maxLength) { FailMessage($"字段修改失败,数据长度的值必须位于 1 和 {maxLength} 之间"); return; } } try { DataProvider.TableMetadataDao.Update(info); Body.AddAdminLog("修改辅助表字段", $"辅助表:{_tableName},字段名:{info.AttributeName}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, ex.Message); } } else { var attributeNameList = TableMetadataManager.GetAttributeNameList(_tableName, true); var attributeNameLowercase = TbAttributeName.Text.Trim().ToLower(); if (attributeNameList.Contains(attributeNameLowercase) || ContentAttribute.AllAttributesLowercase.Contains(attributeNameLowercase)) { FailMessage("字段添加失败,字段名已存在!"); } else if (!SqlUtils.IsAttributeNameCompliant(TbAttributeName.Text)) { FailMessage("字段名不符合系统要求!"); } else { var info = new TableMetadataInfo { TableName = _tableName, AttributeName = TbAttributeName.Text, DataType = DataTypeUtils.GetEnumType(DdlDataType.SelectedValue) }; if (info.DataType == DataType.VarChar) { info.DataLength = TranslateUtils.ToInt(TbDataLength.Text); var maxLength = SqlUtils.GetMaxLengthForNVarChar(); if (info.DataLength <= 0 || info.DataLength > maxLength) { FailMessage($"字段修改失败,数据长度的值必须位于 1 和 {maxLength} 之间"); return; } } info.IsSystem = false; try { DataProvider.TableMetadataDao.Insert(info); Body.AddAdminLog("添加辅助表字段", $"辅助表:{_tableName},字段名:{info.AttributeName}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, ex.Message); } } } if (isChanged) { LayerUtils.Close(Page); } }
public override void Submit_OnClick(object sender, EventArgs e) { var isChanged = false; var attributeNameList = TranslateUtils.StringCollectionToStringList(Request.Form["attributeName"]); var dataTypeList = TranslateUtils.StringCollectionToStringList(Request.Form["dataType"]); var dataLengthList = TranslateUtils.StringCollectionToStringList(Request.Form["dataLength"]); for (var i = 0; i < attributeNameList.Count; i++) { if (dataTypeList.Count < attributeNameList.Count) { dataTypeList.Add(string.Empty); } if (dataLengthList.Count < attributeNameList.Count) { dataLengthList.Add(string.Empty); } } var tableStyle = EAuxiliaryTableTypeUtils.GetTableStyle(_tableType); var attributeNameArrayList = TableManager.GetAttributeNameList(tableStyle, _tableName, true); attributeNameArrayList.AddRange(TableManager.GetHiddenAttributeNameList(tableStyle)); for (var i = 0; i < attributeNameList.Count; i++) { var attributeName = attributeNameList[i]; var dataType = dataTypeList[i]; var dataLength = dataLengthList[i]; if (attributeNameArrayList.IndexOf(attributeName.Trim().ToLower()) != -1) { FailMessage("字段添加失败,字段名已存在!"); } else if (!SqlUtils.IsAttributeNameCompliant(attributeName)) { FailMessage("字段名不符合系统要求!"); } else { var info = new TableMetadataInfo { AuxiliaryTableEnName = _tableName, AttributeName = attributeName, DataType = EDataTypeUtils.GetEnumType(dataType) }; var hashtable = new Hashtable { [EDataType.DateTime] = new[] { "8", "false" }, [EDataType.Integer] = new[] { "4", "false" }, [EDataType.NChar] = new[] { "50", "true" }, [EDataType.NText] = new[] { "16", "false" }, [EDataType.NVarChar] = new[] { "255", "true" } }; var strArr = (string[])hashtable[EDataTypeUtils.GetEnumType(dataType)]; if (strArr[1].Equals("false")) { dataLength = strArr[0]; } if (string.IsNullOrEmpty(dataLength)) { dataLength = strArr[0]; } info.DataLength = int.Parse(dataLength); if (info.DataType == EDataType.NVarChar || info.DataType == EDataType.NChar) { var maxLength = SqlUtils.GetMaxLengthForNVarChar(); if (info.DataLength <= 0 || info.DataLength > maxLength) { FailMessage($"字段修改失败,数据长度的值必须位于 1 和 {maxLength} 之间"); return; } } info.IsSystem = false; try { BaiRongDataProvider.TableMetadataDao.Insert(info); Body.AddAdminLog("添加辅助表字段", $"辅助表:{_tableName},字段名:{info.AttributeName}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, ex.Message); } } } if (isChanged) { PageUtils.CloseModalPage(Page); } }
/// <summary> /// 将频道模板中的辅助表导入发布系统中,返回修改了的表名对照 /// 在导入辅助表的同时检查发布系统辅助表并替换对应表 /// </summary> public NameValueCollection ImportAuxiliaryTables(int publishmentSystemId, bool isUserTables) { if (!DirectoryUtils.IsDirectoryExists(_directoryPath)) { return(null); } var publishmentSystemInfo = PublishmentSystemManager.GetPublishmentSystemInfo(publishmentSystemId); var nameValueCollection = new NameValueCollection(); var tableNamePrefix = publishmentSystemInfo.PublishmentSystemDir + "_"; var filePaths = DirectoryUtils.GetFilePaths(_directoryPath); foreach (var filePath in filePaths) { var feed = AtomFeed.Load(FileUtils.GetFileStreamReadOnly(filePath)); var tableName = AtomUtility.GetDcElementContent(feed.AdditionalElements, "TableENName"); var tableType = EAuxiliaryTableTypeUtils.GetEnumType(AtomUtility.GetDcElementContent(feed.AdditionalElements, "AuxiliaryTableType")); if (!isUserTables) { nameValueCollection[tableName] = NodeManager.GetTableName(publishmentSystemInfo, tableType); continue; } var tableCnName = AtomUtility.GetDcElementContent(feed.AdditionalElements, "TableCNName"); var serializedString = AtomUtility.GetDcElementContent(feed.AdditionalElements, "SerializedString"); var tableNameToInsert = string.Empty;//需要增加的表名,空代表不需要添加辅助表 var tableInfo = BaiRongDataProvider.TableCollectionDao.GetAuxiliaryTableInfo(tableName); if (tableInfo == null)//如果当前系统无此表名 { tableNameToInsert = tableName; } else { var serializedStringForExistTable = TableManager.GetSerializedString(tableName); if (!string.IsNullOrEmpty(serializedString)) { if (serializedString != serializedStringForExistTable)//仅有此时,导入表需要修改表名 { tableNameToInsert = tableNamePrefix + tableName; tableCnName = tableNamePrefix + tableCnName; nameValueCollection[tableName] = tableNameToInsert; } } } if (!string.IsNullOrEmpty(tableNameToInsert))//需要添加 { if (!BaiRongDataProvider.TableStructureDao.IsTableExists(tableNameToInsert)) { tableInfo = new AuxiliaryTableInfo { TableEnName = tableNameToInsert, TableCnName = tableCnName, AttributeNum = 0, AuxiliaryTableType = tableType, IsCreatedInDb = false, IsChangedAfterCreatedInDb = false, Description = AtomUtility.GetDcElementContent(feed.AdditionalElements, "Description") }; BaiRongDataProvider.TableCollectionDao.Insert(tableInfo); var tableStyle = EAuxiliaryTableTypeUtils.GetTableStyle(tableInfo.AuxiliaryTableType); var attributeNameList = TableManager.GetAttributeNameList(tableStyle, tableInfo.TableEnName, true); attributeNameList.AddRange( TableManager.GetHiddenAttributeNameList(tableStyle)); foreach (AtomEntry entry in feed.Entries) { var metaInfo = new TableMetadataInfo { AuxiliaryTableEnName = tableNameToInsert, AttributeName = AtomUtility.GetDcElementContent(entry.AdditionalElements, "AttributeName"), DataType = EDataTypeUtils.GetEnumType( AtomUtility.GetDcElementContent(entry.AdditionalElements, "DataType")), DataLength = TranslateUtils.ToInt( AtomUtility.GetDcElementContent(entry.AdditionalElements, "DataLength")), Taxis = TranslateUtils.ToInt(AtomUtility.GetDcElementContent(entry.AdditionalElements, "Taxis")), IsSystem = TranslateUtils.ToBool( AtomUtility.GetDcElementContent(entry.AdditionalElements, "IsSystem")) }; if (attributeNameList.IndexOf(metaInfo.AttributeName.Trim().ToLower()) != -1) { continue; } if (metaInfo.IsSystem) { continue; } BaiRongDataProvider.TableMetadataDao.Insert(metaInfo); } BaiRongDataProvider.TableMetadataDao.CreateAuxiliaryTable(tableNameToInsert); } } var tableNameToChange = (!string.IsNullOrEmpty(tableNameToInsert)) ? tableNameToInsert : tableName; //更新发布系统后台内容表及栏目表 if (tableType == EAuxiliaryTableType.BackgroundContent) { publishmentSystemInfo.AuxiliaryTableForContent = tableNameToChange; DataProvider.PublishmentSystemDao.Update(publishmentSystemInfo); } else if (tableType == EAuxiliaryTableType.GovPublicContent) { publishmentSystemInfo.AuxiliaryTableForGovPublic = tableNameToChange; DataProvider.PublishmentSystemDao.Update(publishmentSystemInfo); } else if (tableType == EAuxiliaryTableType.GovInteractContent) { publishmentSystemInfo.AuxiliaryTableForGovInteract = tableNameToChange; DataProvider.PublishmentSystemDao.Update(publishmentSystemInfo); } else if (tableType == EAuxiliaryTableType.JobContent) { publishmentSystemInfo.AuxiliaryTableForJob = tableNameToChange; DataProvider.PublishmentSystemDao.Update(publishmentSystemInfo); } else if (tableType == EAuxiliaryTableType.VoteContent) { publishmentSystemInfo.AuxiliaryTableForVote = tableNameToChange; DataProvider.PublishmentSystemDao.Update(publishmentSystemInfo); } } return(nameValueCollection); }
public List <TableMetadataInfo> GetDefaultTableMetadataInfoList(string tableName, EAuxiliaryTableType tableType) { var arraylist = new List <TableMetadataInfo>(); if (tableType == EAuxiliaryTableType.BackgroundContent) { var metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.Title, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.SubTitle, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.ImageUrl, EDataType.VarChar, 200, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.VideoUrl, EDataType.VarChar, 200, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.FileUrl, EDataType.VarChar, 200, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.LinkUrl, EDataType.NVarChar, 200, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Content, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Summary, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Author, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.Source, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.IsRecommend, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.IsHot, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, BackgroundContentAttribute.IsColor, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.IsTop, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.AddDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); } else if (tableType == EAuxiliaryTableType.GovPublicContent) { var metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.Title, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.Identifier, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.Description, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.PublishDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.EffectDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.IsAbolition, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.AbolitionDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.DocumentNo, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.Publisher, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.Keywords, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.ImageUrl, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.FileUrl, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.IsRecommend, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.IsHot, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.IsColor, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.IsTop, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovPublicContentAttribute.Content, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.AddDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); } else if (tableType == EAuxiliaryTableType.GovInteractContent) { var metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.RealName, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Organization, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.CardType, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.CardNo, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Phone, EDataType.VarChar, 50, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.PostCode, EDataType.VarChar, 50, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Address, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Email, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Fax, EDataType.VarChar, 50, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.TypeId, EDataType.Integer, 38, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.IsPublic, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Title, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.Content, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.FileUrl, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, GovInteractContentAttribute.DepartmentId, EDataType.Integer, 38, 0, true); arraylist.Add(metadataInfo); } else if (tableType == EAuxiliaryTableType.VoteContent) { var metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.Title, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.SubTitle, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.MaxSelectNum, EDataType.Integer, 38, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.ImageUrl, EDataType.VarChar, 200, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.Content, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.Summary, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.AddDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.EndDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.IsVotedView, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, VoteContentAttribute.HiddenContent, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); } else if (tableType == EAuxiliaryTableType.JobContent) { var metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.Title, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, JobContentAttribute.Department, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, JobContentAttribute.Location, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, JobContentAttribute.NumberOfPeople, EDataType.NVarChar, 50, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, JobContentAttribute.Responsibility, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, JobContentAttribute.Requirement, EDataType.NText, 16, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, JobContentAttribute.IsUrgent, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.IsTop, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.AddDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); } else if (tableType == EAuxiliaryTableType.UserDefined) { var metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.Title, EDataType.NVarChar, 255, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.IsTop, EDataType.VarChar, 18, 0, true); arraylist.Add(metadataInfo); metadataInfo = new TableMetadataInfo(0, tableName, ContentAttribute.AddDate, EDataType.DateTime, 8, 0, true); arraylist.Add(metadataInfo); } return(arraylist); }
/// <summary> /// 将频道模板中的辅助表导入发布系统中,返回修改了的表名对照 /// 在导入辅助表的同时检查发布系统辅助表并替换对应表 /// </summary> public NameValueCollection ImportAuxiliaryTables(int siteId, bool isUserTables) { if (!DirectoryUtils.IsDirectoryExists(_directoryPath)) { return(null); } var siteInfo = SiteManager.GetSiteInfo(siteId); var nameValueCollection = new NameValueCollection(); var tableNamePrefix = siteInfo.SiteDir + "_"; var filePaths = DirectoryUtils.GetFilePaths(_directoryPath); foreach (var filePath in filePaths) { var feed = AtomFeed.Load(FileUtils.GetFileStreamReadOnly(filePath)); var tableName = AtomUtility.GetDcElementContent(feed.AdditionalElements, new List <string> { nameof(TableInfo.TableName), "TableENName" }); if (!isUserTables) { nameValueCollection[tableName] = siteInfo.TableName; continue; } var displayName = AtomUtility.GetDcElementContent(feed.AdditionalElements, new List <string> { nameof(TableInfo.DisplayName), "TableCNName" }); var serializedString = AtomUtility.GetDcElementContent(feed.AdditionalElements, "SerializedString"); var tableNameToInsert = string.Empty;//需要增加的表名,空代表不需要添加辅助表 var tableInfo = DataProvider.TableDao.GetTableCollectionInfo(tableName); if (tableInfo == null)//如果当前系统无此表名 { tableNameToInsert = tableName; } else { var serializedStringForExistTable = TableMetadataManager.GetSerializedString(tableName); if (!string.IsNullOrEmpty(serializedString)) { if (serializedString != serializedStringForExistTable)//仅有此时,导入表需要修改表名 { tableNameToInsert = tableNamePrefix + tableName; displayName = tableNamePrefix + displayName; nameValueCollection[tableName] = tableNameToInsert; } } } if (!string.IsNullOrEmpty(tableNameToInsert))//需要添加 { if (!DataProvider.DatabaseDao.IsTableExists(tableNameToInsert)) { tableInfo = new TableInfo { TableName = tableNameToInsert, DisplayName = displayName, AttributeNum = 0, IsCreatedInDb = false, IsChangedAfterCreatedInDb = false, Description = AtomUtility.GetDcElementContent(feed.AdditionalElements, nameof(TableInfo.Description)) }; var metadataInfoList = new List <TableMetadataInfo>(); foreach (AtomEntry entry in feed.Entries) { var metaInfo = new TableMetadataInfo { TableName = tableNameToInsert, AttributeName = AtomUtility.GetDcElementContent(entry.AdditionalElements, nameof(TableMetadataInfo.AttributeName)), DataType = DataTypeUtils.GetEnumType(AtomUtility.GetDcElementContent(entry.AdditionalElements, nameof(TableMetadataInfo.DataType))), DataLength = TranslateUtils.ToInt(AtomUtility.GetDcElementContent(entry.AdditionalElements, nameof(TableMetadataInfo.DataLength))), Taxis = TranslateUtils.ToInt(AtomUtility.GetDcElementContent(entry.AdditionalElements, nameof(TableMetadataInfo.Taxis))), IsSystem = TranslateUtils.ToBool(AtomUtility.GetDcElementContent(entry.AdditionalElements, nameof(TableMetadataInfo.IsSystem))) }; if (string.IsNullOrEmpty(metaInfo.AttributeName) || ContentAttribute.AllAttributesLowercase.Contains(metaInfo.AttributeName.ToLower())) { continue; } metadataInfoList.Add(metaInfo); } DataProvider.TableDao.Insert(tableInfo, metadataInfoList); DataProvider.TableDao.CreateDbTable(tableNameToInsert); } } var tableNameToChange = !string.IsNullOrEmpty(tableNameToInsert) ? tableNameToInsert : tableName; //更新发布系统后台内容表及栏目表 siteInfo.TableName = tableNameToChange; DataProvider.SiteDao.Update(siteInfo); } return(nameValueCollection); }
public override void Submit_OnClick(object sender, EventArgs e) { var isChanged = false; if (Body.IsQueryExists("TableMetadataID")) { var tableMetadataId = Body.GetQueryInt("TableMetadataID"); var info = BaiRongDataProvider.TableMetadataDao.GetTableMetadataInfo(tableMetadataId); info.AuxiliaryTableEnName = _tableName; info.AttributeName = AttributeName.Text; info.DataType = EDataTypeUtils.GetEnumType(DataType.SelectedValue); var hashtable = new Hashtable { [EDataType.DateTime] = new[] { "8", "false" }, [EDataType.Integer] = new[] { "4", "false" }, [EDataType.NChar] = new[] { "50", "true" }, [EDataType.NText] = new[] { "16", "false" }, [EDataType.NVarChar] = new[] { "255", "true" } }; var strArr = (string[])hashtable[EDataTypeUtils.GetEnumType(DataType.SelectedValue)]; if (strArr[1].Equals("false")) { DataLength.Text = strArr[0]; } info.DataLength = int.Parse(DataLength.Text); if (info.DataType == EDataType.NVarChar || info.DataType == EDataType.NChar) { var maxLength = SqlUtils.GetMaxLengthForNVarChar(); if (info.DataLength <= 0 || info.DataLength > maxLength) { FailMessage($"字段修改失败,数据长度的值必须位于 1 和 {maxLength} 之间"); return; } } try { BaiRongDataProvider.TableMetadataDao.Update(info); Body.AddAdminLog("修改辅助表字段", $"辅助表:{_tableName},字段名:{info.AttributeName}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, ex.Message); } } else { var tableStyle = EAuxiliaryTableTypeUtils.GetTableStyle(_tableType); var attributeNameList = TableManager.GetAttributeNameList(tableStyle, _tableName, true); attributeNameList.AddRange(TableManager.GetHiddenAttributeNameList(tableStyle)); if (attributeNameList.IndexOf(AttributeName.Text.Trim().ToLower()) != -1) { FailMessage("字段添加失败,字段名已存在!"); } else if (!SqlUtils.IsAttributeNameCompliant(AttributeName.Text)) { FailMessage("字段名不符合系统要求!"); } else { var info = new TableMetadataInfo { AuxiliaryTableEnName = _tableName, AttributeName = AttributeName.Text, DataType = EDataTypeUtils.GetEnumType(DataType.SelectedValue) }; var hashtable = new Hashtable { [EDataType.DateTime] = new[] { "8", "false" }, [EDataType.Integer] = new[] { "4", "false" }, [EDataType.NChar] = new[] { "50", "true" }, [EDataType.NText] = new[] { "16", "false" }, [EDataType.NVarChar] = new[] { "255", "true" } }; var strArr = (string[])hashtable[EDataTypeUtils.GetEnumType(DataType.SelectedValue)]; if (strArr[1].Equals("false")) { DataLength.Text = strArr[0]; } info.DataLength = int.Parse(DataLength.Text); if (info.DataType == EDataType.NVarChar || info.DataType == EDataType.NChar) { var maxLength = SqlUtils.GetMaxLengthForNVarChar(); if (info.DataLength <= 0 || info.DataLength > maxLength) { FailMessage($"字段修改失败,数据长度的值必须位于 1 和 {maxLength} 之间"); return; } } info.IsSystem = false; try { BaiRongDataProvider.TableMetadataDao.Insert(info); Body.AddAdminLog("添加辅助表字段", $"辅助表:{_tableName},字段名:{info.AttributeName}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, ex.Message); } } } if (isChanged) { PageUtils.CloseModalPage(Page); } }