using Test.Model;
using Ldt.SettingCenter.Core;
using LdtCommonFreeSql;
using LdtCommonFreeSql.Model;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Test
{
public class FreeSqlTest : BackgroundService
{
private readonly FreesqlDb freesqlDb;
private readonly ISettingCenter settingCenter;
public FreeSqlTest(FreesqlDb freesqlDb, ISettingCenter settingCenter)
{
this.freesqlDb = freesqlDb;
this.settingCenter = settingCenter;
}
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
var mysql171 = new ConnConfig { Dbtype = FreeSql.DataType.MySql, ConnectString = "Data Source=192.168.1.171;Port=3306;User ID=root;Password=abc@123; Initial Catalog=ldt_user_center;Charset=utf8; SslMode=none;Min pool size=1;Allow User Variables=True;" };
var mssql109 = new ConnConfig { Dbtype = FreeSql.DataType.SqlServer, ConnectString = "Data Source=192.168.1.109;User Id=sa;Password=ldtlaw_123;Initial Catalog=ldt_user_center;Pooling=true;Min Pool Size=1" };
//var t= freesqlDb.GetFreeSql("Ldt.ElementCenterCommon");
//获取案件信息转换路径地址
var model = settingCenter.GetApplicationInfo(LdtCommonUtil.SystemInfo.IsLinux() ? "CommonSettingLinux" : "CommonSetting");
var freesql71 = freesqlDb.SelectDBType(mysql171);
var freesq109 = freesqlDb.SelectDBType(mssql109);
TestObj testObj171 = new TestObj();
testObj171.freeSql1 = freesql71;
TestObj testObj109 = new TestObj();
testObj109.freeSql1 = freesq109;
Type type = Assembly.Load("Test").GetType("Test.Model.SysDept");
var ttt = testObj171.freeSql1.Select<SysDept>().ToList(p => p);
MethodInfo mi = testObj171.GetType().GetMethod("Test").MakeGenericMethod(new Type[] { type });
var t = mi.Invoke(testObj171, new object[] { $"dept_id='DI4C2'" }) as IEnumerable<dynamic>;
foreach (var item in t)
{
freesq109.Insert(item).ExecuteAffrows();
}
return Task.CompletedTask;
}
}
public class TestObj
{
public IFreeSql freeSql1;
public object Test<T1>(string condition) where T1 : class, new()
{
return freeSql1.Select<T1>().Where(condition).ToList(p => p);
}
}
}