You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
3 weeks ago
|
using SqlSugar;
|
||
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Text;
|
||
|
using System.Threading.Tasks;
|
||
|
|
||
|
namespace ReZero.SuperAPI
|
||
|
{
|
||
|
internal class DllCreateDb : IDataService
|
||
|
{
|
||
|
public async Task<object> ExecuteAction(DataModel dataModel)
|
||
|
{
|
||
|
await Task.Delay(0);
|
||
|
var connection = dataModel.DefaultParameters.First().Value;
|
||
|
var DbType = dataModel.DefaultParameters.Last().Value;
|
||
|
try
|
||
|
{
|
||
|
var dbType = (DbType)UtilMethods.ChangeType2(DbType, typeof(DbType));
|
||
|
if (IsNoSupport(dbType))
|
||
|
{
|
||
|
return GetNoSupportText();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CreateDatabase(connection, dbType);
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
return ex.Message;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private static void CreateDatabase(object? connection, DbType dbType)
|
||
|
{
|
||
|
SqlSugarClient? db = new SqlSugarClient(new ConnectionConfig()
|
||
|
{
|
||
|
DbType = dbType,
|
||
|
ConnectionString = connection + "",
|
||
|
IsAutoCloseConnection = true,
|
||
|
MoreSettings = new ConnMoreSettings()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
});
|
||
|
if (App.Language == Language.CN)
|
||
|
{
|
||
|
db.CurrentConnectionConfig.LanguageType = LanguageType.Chinese;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
db.CurrentConnectionConfig.LanguageType = LanguageType.English;
|
||
|
}
|
||
|
db.DbMaintenance.CreateDatabase();
|
||
|
}
|
||
|
|
||
|
private static string GetNoSupportText()
|
||
|
{
|
||
|
return TextHandler.GetCommonText($" dm or oracle no support ", "达梦或者Oracle不支持建库");
|
||
|
}
|
||
|
|
||
|
private static bool IsNoSupport(DbType dbType)
|
||
|
{
|
||
|
return dbType == SqlSugar.DbType.Dm || dbType == SqlSugar.DbType.Oracle;
|
||
|
}
|
||
|
}
|
||
|
}
|