public ActionResult CreateManageApp() { long authId = 0; string sign = this["sign"]; string ip = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() .Select(p => p.GetIPProperties()) .SelectMany(p => p.UnicastAddresses) .Where(p => p.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork && !System.Net.IPAddress.IsLoopback(p.Address)) .FirstOrDefault()?.Address.ToString(); string manageUrl = site.Config.Url.Manage.Replace("${IP}", ip); string appConfigUrl = site.Config.Url.ManageConfig.Replace("${IP}", ip); string appXmlString = dpz.Net.Http.GetUTF8(appConfigUrl); using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Aos)) { if (!dbc.CheckTable("AosAuthorize")) { return(JsonContent(0, $"请先安装AosAuthorize表")); } var row = dbc.GetGdmlOne($"@{{$[AosAuthorize]&[DBSign=='Manage']}}"); if (row.IsEmpty) { return(JsonContent(0, "请先添加管理授权")); } authId = row["ID"].ToLong(); } using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Aos)) { if (!dbc.CheckTable("AosApps")) { return(JsonContent(0, $"请先安装AosApps表")); } using (dpz.Data.Xml xml = new dpz.Data.Xml(appXmlString)) { var xmlEntity = xml["entity"]; var xmlApps = xmlEntity["apps"]; string appsSign = xmlApps.Attr["sign"]; if (appsSign != "") { appsSign += "."; } foreach (var xmlApp in xmlApps.Nodes) { if (xmlApp.Name == "app") { string appSign = appsSign + xmlApp.Attr["sign"]; if (appSign == sign) { string appTitle = xmlApp.Attr["title"]; string appVer = xmlApp.Attr["version"]; string appPath = xmlApp.Attr["path"]; var rowVer = ""; var rowApp = dbc.GetGdmlOne($"@{{$[AosApps]&[AuthID=='{authId}'&&Name=='{appSign}']}}"); if (!rowApp.IsEmpty) { rowVer = rowApp["Version"]; } if (rowVer == "") { dbc.ExecGdml($"+{{$[AosApps].[AuthID='{authId}'].[Name='{appSign}'].[Text='{appTitle}'].[Path='{appPath}'].[Version='{appVer}'].[OnStore='0'].[IsDesktop='0'].[Description=''].[CatalogID='0']}}"); } else if (appVer != rowVer) { dbc.ExecGdml($"!{{$[AosApps].[Text='{appTitle}'].[Path='{appPath}'].[Version='{appVer}']&[ID=='{rowApp["ID"]}']}}"); } return(JsonContent(1)); } } } } } return(JsonContent(0, $"未找到应用配置信息")); }
public ActionResult CreateAosTable() { //string plmName = this["platform"]; string tabName = this["table"]; if (tabName != "AosObjects") { using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Aos)) { if (!dbc.CheckTable("AosObjects")) { return(JsonContent(0, $"请在安装{tabName}表前先安装AosObjects表")); } } } string tabVersion = ""; string xmlSetting = dpz.Net.Http.GetUTF8($"{site.Config.Orm.XmlUrl}/Setting.xml"); using (dpz.Data.Xml xml = new dpz.Data.Xml(xmlSetting)) { var xmlDB = xml["database"]; var xmlAos = xmlDB.GetNodeByAttrValue("name", "Aos", false); var xmlTable = xmlAos.GetNodeByAttrValue("name", tabName, false); tabVersion = xmlTable.Attr["version"]; } string xmlString = dpz.Net.Http.GetUTF8($"{site.Config.Orm.XmlUrl}/Aos/{tabName}.xml"); if (xmlString == "") { return(JsonContent(0, "配置获取失败,请检查表名称是否存在")); } using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Aos)) { //string sql = ""; using (dpz.Data.Xml xml = new dpz.Data.Xml(xmlString)) { var xmlTable = xml["table"]; //判断表是否存在 if (!dbc.CheckTable(tabName)) { List <dpz.Gdbc.TableFieldDefine> fields = new List <dpz.Gdbc.TableFieldDefine>(); foreach (var xmlField in xmlTable.Nodes) { if (xmlField.Name.ToLower() == "field") { string fieldName = xmlField.Attr["name"]; var xmlData = xmlField["data"]; string fieldDataType = xmlData.Attr["type"].ToLower(); int fieldDataSize = xmlData.Attr["size"].ToInteger(); int fieldDataFloat = xmlData.Attr["float"].ToInteger(); var field = new dpz.Gdbc.TableFieldDefine(); field.Name = fieldName; field.Type = fieldDataType; field.Size = fieldDataSize; field.Float = fieldDataFloat; fields.Add(field); } } dbc.CreateTable(tabName, fields); } else { //更新字段 foreach (var xmlField in xmlTable.Nodes) { if (xmlField.Name.ToLower() == "field") { string fieldName = xmlField.Attr["name"]; var xmlData = xmlField["data"]; string fieldDataType = xmlData.Attr["type"].ToLower(); int fieldDataSize = xmlData.Attr["size"].ToInteger(); int fieldDataFloat = xmlData.Attr["float"].ToInteger(); dpz.Gdbc.TableFieldDefine fieldDefine = new dpz.Gdbc.TableFieldDefine() { Name = fieldName, Type = fieldDataType, Size = fieldDataSize, Float = fieldDataFloat }; if (!dbc.CheckTableFiled(tabName, fieldName)) { dbc.AddTableFiled(tabName, fieldDefine); } else { dbc.UpdateTableFiled(tabName, fieldName, fieldDefine); } } } } //更新表格结构信息 if (dbc.GetGdmlOne($"@{{$[AosObjects]&[Name=='{tabName}']}}").IsEmpty) { dbc.ExecGdml($"+{{$[AosObjects].[Name='{tabName}'].[Version='{tabVersion}']}}"); } else { dbc.ExecGdml($"!{{$[AosObjects].[Version='{tabVersion}']&[Name=='{tabName}']}}"); } JResponse["Version"] = tabVersion; } } return(JsonContent(1)); }
public ActionResult CreateManageTable() { string plmName = this["platform"]; string tabName = this["table"]; if (tabName != "SystemObjects") { using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Manage)) { if (!dbc.CheckTable("SystemObjects")) { return(JsonContent(0, $"请先安装SystemObjects表")); } } } string tabVersion = ""; string xmlSetting = dpz.Net.Http.GetUTF8($"{site.Config.Orm.XmlUrl}/Setting.xml"); using (dpz.Data.Xml xml = new dpz.Data.Xml(xmlSetting)) { var xmlDB = xml["database"]; var xmlAos = xmlDB.GetNodeByAttrValue("name", plmName, false); var xmlTable = xmlAos.GetNodeByAttrValue("name", tabName, false); tabVersion = xmlTable.Attr["version"]; } string xmlString = dpz.Net.Http.GetUTF8($"{site.Config.Orm.XmlUrl}/{plmName}/{tabName}.xml"); if (xmlString == "") { return(JsonContent(0, "配置获取失败,请检查表名称是否存在")); } using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Manage)) { string sql = ""; using (dpz.Data.Xml xml = new dpz.Data.Xml(xmlString)) { var xmlTable = xml["table"]; //判断表是否存在 //if (!dbc.GetOne($"Select * From sysObjects Where Name ='{tabName}' And Type In ('S','U')").HasData) { if (!dbc.CheckTable(tabName)) { //添加表 List <dpz.Gdbc.TableFieldDefine> fields = new List <dpz.Gdbc.TableFieldDefine>(); foreach (var xmlField in xmlTable.Nodes) { if (xmlField.Name.ToLower() == "field") { string fieldName = xmlField.Attr["name"]; var xmlData = xmlField["data"]; string fieldDataType = xmlData.Attr["type"].ToLower(); int fieldDataSize = xmlData.Attr["size"].ToInteger(); int fieldDataFloat = xmlData.Attr["float"].ToInteger(); var field = new dpz.Gdbc.TableFieldDefine(); field.Name = fieldName; field.Type = fieldDataType; field.Size = fieldDataSize; field.Float = fieldDataFloat; fields.Add(field); } } dbc.CreateTable(tabName, fields); } else { //更新字段 foreach (var xmlField in xmlTable.Nodes) { if (xmlField.Name.ToLower() == "field") { string fieldName = xmlField.Attr["name"]; var xmlData = xmlField["data"]; string fieldDataType = xmlData.Attr["type"].ToLower(); int fieldDataSize = xmlData.Attr["size"].ToInteger(); int fieldDataFloat = xmlData.Attr["float"].ToInteger(); dpz.Gdbc.TableFieldDefine fieldDefine = new dpz.Gdbc.TableFieldDefine() { Name = fieldName, Type = fieldDataType, Size = fieldDataSize, Float = fieldDataFloat }; if (!dbc.CheckTableFiled(tabName, fieldName)) { dbc.AddTableFiled(tabName, fieldDefine); } else { dbc.UpdateTableFiled(tabName, fieldName, fieldDefine); } } } } //更新表格结构信息 if (dbc.GetGdmlOne($"@{{$[SystemObjects]&[Name=='{tabName}'&&Type=='Table']}}").IsEmpty) { string guid = ""; do { guid = Guid.NewGuid().ToString(); } while (!dbc.GetGdmlOne($"@{{$[SystemObjects]&[Guid=='{guid}']}}").IsEmpty); dbc.ExecGdml($"+{{$[SystemObjects].[Name='{tabName}'].[Type='Table'].[Version='{tabVersion}'].[Guid='{guid}']}}"); } else { dbc.ExecGdml($"!{{$[SystemObjects].[Version='{tabVersion}']&[Name=='{tabName}'&&Type=='Table']}}"); } JResponse["Version"] = tabVersion; } } return(JsonContent(1)); }