private void RptContents_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) { return; } var tableMetadataId = SqlUtils.EvalInt(e.Item.DataItem, nameof(TableMetadataInfo.Id)); var attributeName = SqlUtils.EvalString(e.Item.DataItem, nameof(TableMetadataInfo.AttributeName)); var dataType = SqlUtils.EvalString(e.Item.DataItem, nameof(TableMetadataInfo.DataType)); var isSystem = SqlUtils.EvalString(e.Item.DataItem, nameof(TableMetadataInfo.IsSystem)); var ltlAttributeName = (Literal)e.Item.FindControl("ltlAttributeName"); var ltlDataType = (Literal)e.Item.FindControl("ltlDataType"); var hlUp = (HyperLink)e.Item.FindControl("hlUp"); var hlDown = (HyperLink)e.Item.FindControl("hlDown"); var ltlEditUrl = (Literal)e.Item.FindControl("ltlEditUrl"); var ltlDeleteUrl = (Literal)e.Item.FindControl("ltlDeleteUrl"); ltlAttributeName.Text = attributeName; ltlDataType.Text = DataTypeUtils.GetText(DataTypeUtils.GetEnumType(dataType)); if (TranslateUtils.ToBool(isSystem)) { hlUp.Visible = hlDown.Visible = false; return; } hlUp.NavigateUrl = PageUtils.GetSettingsUrl(nameof(PageSiteTableMetadata), new NameValueCollection { { "SiteId", SiteId.ToString() }, { "SetTaxis", "True" }, { "Direction", "UP" }, { "TableMetadataId", tableMetadataId.ToString() }, { "ENName", _tableName } }); hlDown.NavigateUrl = PageUtils.GetSettingsUrl(nameof(PageSiteTableMetadata), new NameValueCollection { { "SiteId", SiteId.ToString() }, { "SetTaxis", "True" }, { "Direction", "DOWN" }, { "TableMetadataId", tableMetadataId.ToString() }, { "ENName", _tableName } }); ltlEditUrl.Text = $@"<a href=""javascript:;"" onclick=""{ModalTableMetadataAdd.GetOpenWindowStringToEdit(_tableName, tableMetadataId)}"">修改字段</a>"; ltlDeleteUrl.Text = $@"<a href=""{PageUtils.AddQueryString(_redirectUrl, new NameValueCollection { {"Delete", true.ToString()}, {"TableMetadataID", tableMetadataId.ToString()} })}"" onClick=""javascript:return confirm('此操作将删除辅助字段“{attributeName}”,确认吗?');"">删除字段</a>"; }
public void DdlDataType_SelectedIndexChanged(object sender, EventArgs e) { PhDataLength.Visible = DataTypeUtils.GetEnumType(DdlDataType.SelectedValue) == DataType.VarChar; }
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 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 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); }
/// <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 object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { return(DataTypeUtils.GetEnumType((string)reader.Value)); }