Commit d75300a3 authored by 潘栩锋's avatar 潘栩锋 🚴

FeedbackRenZia ,blowing, blowingScan, 升级 AutoMapper 为9.0.0

parent f8694140
......@@ -27,15 +27,6 @@ namespace FLY.FeedbackRenZiJia.UI.Server
MessageBoxButton.OK, MessageBoxImage.Error);
};
//AutoMapper 初始化
//所有使用到 AutoMapper 的程序集 必须主动显式 在这里加载。
//当为 dll 反射加载的 程序集, 应该在此提前 加载。
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
//var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
//cfg.AddMaps(assemblies);
cfg.AddMaps("FLY.FeedbackRenZiJia");
AutoMapper.Mapper.Initialize(cfg);
}
}
}
......@@ -147,9 +147,6 @@
<PackageReference Include="NLog">
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="NLog.Config">
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="System.Data.SQLite.Core">
<Version>1.0.111</Version>
</PackageReference>
......
......@@ -84,6 +84,7 @@
<Compile Include="Server\Model\DbTable.cs" />
<Compile Include="Server\Model\HistoryDb.cs" />
<Compile Include="Server\Model\LcTable.cs" />
<Compile Include="Server\Model\Lc_AutoMapperProfile.cs" />
<Compile Include="Server\PLCLink.cs" />
<Compile Include="Server\SnapShotBuf.cs" />
<Compile Include="Server\SysParam.cs" />
......@@ -125,6 +126,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper">
<Version>9.0.0</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.2</Version>
</PackageReference>
......
......@@ -59,7 +59,7 @@ namespace FLY.FeedbackRenZiJia.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_thickHeat = AutoMapper.Mapper.Map<Db_ThickHeat>(thickHeat);
var db_thickHeat = Lc_AutoMapperProfile.Mapper.Map<Db_ThickHeat>(thickHeat);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_thickHeat));
dbModel.sqliteHelper.QueryTranAsync(sqls);
......
......@@ -92,57 +92,5 @@ namespace FLY.FeedbackRenZiJia.Server.Model
public int[] Heats { get; set; }
}
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class Lc_AutoMapperProfile : AutoMapper.Profile
{
public Lc_AutoMapperProfile()
{
CreateMap<Lc_ThickHeat, Db_ThickHeat>()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => s.RPeriod.TotalMinutes);
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Boltmap));
})
.ForMember(s => s.Heats, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Heats));
})
.ReverseMap()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => TimeSpan.FromMinutes(s.RPeriod));
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<List<BoltMapCell>>(s.Boltmap));
})
.ForMember(s => s.Heats, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(s.Heats));
});
}
}
}
using FLY.Thick.Blowing.IService;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.FeedbackRenZiJia.Server.Model
{
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class Lc_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public static AutoMapper.IMapper Mapper;
static Lc_AutoMapperProfile()
{
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
cfg.AddProfile<Lc_AutoMapperProfile>();
AutoMapper.MapperConfiguration config = new AutoMapper.MapperConfiguration(cfg);
Mapper = new AutoMapper.Mapper(config);
}
public Lc_AutoMapperProfile()
{
CreateMap<Lc_ThickHeat, Db_ThickHeat>()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => s.RPeriod.TotalMinutes);
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Boltmap));
})
.ForMember(s => s.Heats, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Heats));
})
.ReverseMap()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => TimeSpan.FromMinutes(s.RPeriod));
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<List<BoltMapCell>>(s.Boltmap));
})
.ForMember(s => s.Heats, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(s.Heats));
});
}
}
}
......@@ -411,10 +411,7 @@
<Version>12.0.2</Version>
</PackageReference>
<PackageReference Include="NLog">
<Version>4.6.6</Version>
</PackageReference>
<PackageReference Include="NLog.Config">
<Version>4.6.6</Version>
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="PropertyChanged.Fody">
<Version>2.6.1</Version>
......
......@@ -29,15 +29,6 @@ namespace FLY.Thick.Blowing.UI.Fix.Server
MessageBoxButton.OK, MessageBoxImage.Error);
};
//AutoMapper 初始化
//所有使用到 AutoMapper 的程序集 必须主动显式 在这里加载。
//当为 dll 反射加载的 程序集, 应该在此提前 加载。
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
//var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
//cfg.AddMaps(assemblies);
cfg.AddMaps("FLY.Thick.Blowing");
AutoMapper.Mapper.Initialize(cfg);
}
}
......
......@@ -164,10 +164,7 @@
<Version>3.3.3</Version>
</PackageReference>
<PackageReference Include="NLog">
<Version>4.6.6</Version>
</PackageReference>
<PackageReference Include="NLog.Config">
<Version>4.6.6</Version>
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="System.Data.SQLite">
<Version>1.0.111</Version>
......
......@@ -85,6 +85,8 @@
<Compile Include="Server\Model\BulkDb.cs" />
<Compile Include="Server\Model\DbModel.cs" />
<Compile Include="Server\Model\DbTable.cs" />
<Compile Include="Server\Model\Lc_AutoMapperProfile.cs" />
<Compile Include="Server\Model\OrgLc_AutoMapperProfile.cs" />
<Compile Include="Server\Model\OrgLcTable.cs" />
<Compile Include="Server\Model\OrgDbTable.cs" />
<Compile Include="Server\Model\HistoryDb.cs" />
......@@ -131,7 +133,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper">
<Version>8.1.1</Version>
<Version>9.0.0</Version>
</PackageReference>
<PackageReference Include="MathNet.Numerics">
<Version>4.8.1</Version>
......@@ -140,10 +142,7 @@
<Version>12.0.2</Version>
</PackageReference>
<PackageReference Include="NLog">
<Version>4.6.6</Version>
</PackageReference>
<PackageReference Include="NLog.Config">
<Version>4.6.6</Version>
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="PropertyChanged.Fody">
<Version>2.6.1</Version>
......
......@@ -2010,14 +2010,14 @@ namespace FLY.Thick.Blowing.Server
if (frameinfo.scandata_id == null)
{
//添加数据
var lc_scandata = AutoMapper.Mapper.Map<Lc_ScanData>(frameinfo.renZiJiaDataEventArgs);
var lc_scandata = Lc_AutoMapperProfile.Mapper.Map<Lc_ScanData>(frameinfo.renZiJiaDataEventArgs);
mHistoryDb.AddScanData(lc_scandata);
frameinfo.scandata_id = lc_scandata.ID;
}
else
{
//修改数据
var lc_scandata = AutoMapper.Mapper.Map<Lc_ScanData>(frameinfo.renZiJiaDataEventArgs);
var lc_scandata = Lc_AutoMapperProfile.Mapper.Map<Lc_ScanData>(frameinfo.renZiJiaDataEventArgs);
lc_scandata.ID = (Int64)frameinfo.scandata_id;
mHistoryDb.UpdateScanData(lc_scandata);
}
......
......@@ -155,7 +155,7 @@ namespace FLY.Thick.Blowing.Server.Model
await Task.Factory.StartNew(() =>
{
var db_scandatas = dbModel.TbScanData.Find($"ORDER BY ID LIMIT {request.Index},{request.Count}");
var lc_scanDatas = AutoMapper.Mapper.Map<List<Db_ScanData>, List<Lc_ScanData>>(db_scandatas);
var lc_scanDatas = Lc_AutoMapperProfile.Mapper.Map<List<Db_ScanData>, List<Lc_ScanData>>(db_scandatas);
reponse.Values.AddRange(lc_scanDatas);
});
......@@ -179,7 +179,7 @@ namespace FLY.Thick.Blowing.Server.Model
await Task.Factory.StartNew(() =>
{
var db_scandatas = dbModel.TbScanData.Find($"ORDER BY ID LIMIT {request.Index},{request.Count}");
var lc_scanDatas = AutoMapper.Mapper.Map<List<Db_ScanData>, List<Lc_ScanData>>(db_scandatas);
var lc_scanDatas = Lc_AutoMapperProfile.Mapper.Map<List<Db_ScanData>, List<Lc_ScanData>>(db_scandatas);
reponse.Values.AddRange(lc_scanDatas.Select(sd =>
{
double avg = sd.Thicks.AverageNoNull();
......
......@@ -228,7 +228,7 @@ namespace FLY.Thick.Blowing.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_scandata = AutoMapper.Mapper.Map<Db_ScanData>(scanData);
var db_scandata = Lc_AutoMapperProfile.Mapper.Map<Db_ScanData>(scanData);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_scandata));
if (updateEnd)
......@@ -275,7 +275,7 @@ namespace FLY.Thick.Blowing.Server.Model
}
//SQLs
List<string> sqls = new List<string>();
var db_trenddata = AutoMapper.Mapper.Map<Db_TrendData>(trendData);
var db_trenddata = Lc_AutoMapperProfile.Mapper.Map<Db_TrendData>(trendData);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_trenddata));
if (updateEnd)
......@@ -309,7 +309,7 @@ namespace FLY.Thick.Blowing.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_scandata = AutoMapper.Mapper.Map<Db_ScanData>(scanData);
var db_scandata = Lc_AutoMapperProfile.Mapper.Map<Db_ScanData>(scanData);
sqls.Add(SQLiteHelper.GetUpdateCommandText(db_scandata, $"WHERE ID = {scanData.ID}"));
dbModel.sqliteHelper.QueryTranAsync(sqls);
......@@ -352,7 +352,7 @@ namespace FLY.Thick.Blowing.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_Sign = AutoMapper.Mapper.Map<Db_Sign>(lc_Sign);
var db_Sign = OrgLc_AutoMapperProfile.Mapper.Map<Db_Sign>(lc_Sign);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_Sign));
orgDbModel.sqliteHelper.QueryTranAsync(sqls);
......@@ -369,7 +369,7 @@ namespace FLY.Thick.Blowing.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_Roll = AutoMapper.Mapper.Map<Db_Roll>(lc_Roll);
var db_Roll = OrgLc_AutoMapperProfile.Mapper.Map<Db_Roll>(lc_Roll);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_Roll));
orgDbModel.sqliteHelper.QueryTranAsync(sqls);
......
......@@ -119,86 +119,5 @@ namespace FLY.Thick.Blowing.Server.Model
/// </summary>
public int[] SampleADs { get; set; }
}
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class Lc_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public Lc_AutoMapperProfile()
{
CreateMap<Lc_ScanData, Db_ScanData>()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => s.RPeriod.TotalMinutes);
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Boltmap));
})
.ReverseMap()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => TimeSpan.FromMinutes(s.RPeriod));
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<List<BoltMapCell>>(s.Boltmap));
});
CreateMap<RenZiJiaDataEventArgs, Lc_ScanData>();
CreateMap<Lc_TrendData, Db_TrendData>()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ReverseMap()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
;
CreateMap<Lc_Sample, Db_Sample>()
.ForMember(s => s.SampleADs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.SampleADs));
})
.ReverseMap()
.ForMember(s => s.SampleADs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(s.SampleADs));
});
}
double[] ToRealThicks(int[] frame)
{
return frame.Select(t =>
{
if (Misc.MyBase.ISVALIDATA(t))
return t / 100.0;
else
return double.NaN;
}).ToArray();
}
}
}
using FLY.Thick.Blowing.IService;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.Thick.Blowing.Server.Model
{
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class Lc_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public static AutoMapper.IMapper Mapper;
static Lc_AutoMapperProfile()
{
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
cfg.AddProfile<Lc_AutoMapperProfile>();
AutoMapper.MapperConfiguration config = new AutoMapper.MapperConfiguration(cfg);
Mapper = new AutoMapper.Mapper(config);
}
/// <summary>
///
/// </summary>
public Lc_AutoMapperProfile()
{
CreateMap<Lc_ScanData, Db_ScanData>()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => s.RPeriod.TotalMinutes);
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Boltmap));
})
.ReverseMap()
.ForMember(s => s.RPeriod, opt =>
{
opt.MapFrom(s => TimeSpan.FromMinutes(s.RPeriod));
})
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
.ForMember(s => s.Boltmap, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<List<BoltMapCell>>(s.Boltmap));
});
CreateMap<RenZiJiaDataEventArgs, Lc_ScanData>();
CreateMap<Lc_TrendData, Db_TrendData>()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ReverseMap()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
;
CreateMap<Lc_Sample, Db_Sample>()
.ForMember(s => s.SampleADs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.SampleADs));
})
.ReverseMap()
.ForMember(s => s.SampleADs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(s.SampleADs));
});
}
double[] ToRealThicks(int[] frame)
{
return frame.Select(t =>
{
if (Misc.MyBase.ISVALIDATA(t))
return t / 100.0;
else
return double.NaN;
}).ToArray();
}
}
}
......@@ -51,47 +51,5 @@ namespace FLY.Thick.Blowing.Server.Model
}
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class OrgLc_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public OrgLc_AutoMapperProfile()
{
CreateMap<Lc_Roll, Db_Roll>()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Signs));
})
.ReverseMap()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<RollCell[]>(s.Signs));
});
CreateMap<Lc_Sign, Db_Sign>()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Signs));
})
.ReverseMap()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<SignData[]>(s.Signs));
});
}
}
}
using FLY.Thick.Blowing.IService;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.Thick.Blowing.Server.Model
{
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class OrgLc_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public static AutoMapper.IMapper Mapper;
static OrgLc_AutoMapperProfile()
{
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
cfg.AddProfile<OrgLc_AutoMapperProfile>();
AutoMapper.MapperConfiguration config = new AutoMapper.MapperConfiguration(cfg);
Mapper = new AutoMapper.Mapper(config);
}
/// <summary>
///
/// </summary>
public OrgLc_AutoMapperProfile()
{
CreateMap<Lc_Roll, Db_Roll>()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Signs));
})
.ReverseMap()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<RollCell[]>(s.Signs));
});
CreateMap<Lc_Sign, Db_Sign>()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Signs));
})
.ReverseMap()
.ForMember(s => s.Signs, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<SignData[]>(s.Signs));
});
}
}
}
......@@ -30,16 +30,6 @@ namespace FLY.Thick.BlowingScan.UI.Scan.Server
MessageBoxButton.OK, MessageBoxImage.Error);
};
//AutoMapper 初始化
//所有使用到 AutoMapper 的程序集 必须主动显式 在这里加载。
//当为 dll 反射加载的 程序集, 应该在此提前 加载。
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
//var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
//cfg.AddMaps(assemblies);
cfg.AddMaps("FLY.Thick.Blowing");
cfg.AddMaps("FLY.Thick.BlowingScan");
AutoMapper.Mapper.Initialize(cfg);
}
}
}
......@@ -157,9 +157,6 @@
<PackageReference Include="NLog">
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="NLog.Config">
<Version>4.6.7</Version>
</PackageReference>
<PackageReference Include="PropertyChanged.Fody">
<Version>2.6.1</Version>
</PackageReference>
......
......@@ -65,6 +65,7 @@
<Compile Include="Server\BlowingProfile.cs" />
<Compile Include="Server\GM_BlowingScan.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Server\Model\OrgLc_AutoMapperProfile.cs" />
<Compile Include="Server\Model\OrgDbModel.cs" />
<Compile Include="Server\Model\OrgDbTable.cs" />
<Compile Include="Server\Model\HistoryDb.cs" />
......@@ -109,6 +110,9 @@
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper">
<Version>9.0.0</Version>
</PackageReference>
<PackageReference Include="MathNet.Numerics">
<Version>4.8.1</Version>
</PackageReference>
......
......@@ -1762,7 +1762,7 @@ namespace FLY.Thick.BlowingScan.Server
//TODO 需要检查是否重复写入了!!!!!
#region sqlite3 历史数据保存
var lc_scandata = AutoMapper.Mapper.Map<Lc_ScanData>(renZiJiaDataEventArgs);
var lc_scandata = Lc_AutoMapperProfile.Mapper.Map<Lc_ScanData>(renZiJiaDataEventArgs);
mHistoryDb.AddScanData(lc_scandata);
#endregion
......
......@@ -230,7 +230,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_scandata = AutoMapper.Mapper.Map<Db_ScanData>(scanData);
var db_scandata = Lc_AutoMapperProfile.Mapper.Map<Db_ScanData>(scanData);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_scandata));
if (updateEnd)
......@@ -277,7 +277,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
}
//SQLs
List<string> sqls = new List<string>();
var db_trenddata = AutoMapper.Mapper.Map<Db_TrendData>(trendData);
var db_trenddata = Lc_AutoMapperProfile.Mapper.Map<Db_TrendData>(trendData);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_trenddata));
if (updateEnd)
......@@ -311,7 +311,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_scandata = AutoMapper.Mapper.Map<Db_ScanData>(scanData);
var db_scandata = Lc_AutoMapperProfile.Mapper.Map<Db_ScanData>(scanData);
sqls.Add(SQLiteHelper.GetUpdateCommandText(db_scandata, $"WHERE ID = {scanData.ID}"));
dbModel.sqliteHelper.QueryTranAsync(sqls);
......@@ -355,7 +355,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_Sign = AutoMapper.Mapper.Map<Db_Sign>(lc_Sign);
var db_Sign = FLY.Thick.Blowing.Server.Model.OrgLc_AutoMapperProfile.Mapper.Map<Db_Sign>(lc_Sign);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_Sign));
orgDbModel.sqliteHelper.QueryTranAsync(sqls);
......@@ -372,7 +372,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_Roll = AutoMapper.Mapper.Map<Db_Roll>(lc_Roll);
var db_Roll = FLY.Thick.Blowing.Server.Model.OrgLc_AutoMapperProfile.Mapper.Map<Db_Roll>(lc_Roll);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_Roll));
orgDbModel.sqliteHelper.QueryTranAsync(sqls);
......@@ -391,7 +391,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
foreach (var lc_OrgScanData in lc_OrgScanDatas)
{
lc_OrgScanData.ID = orgDbModel.TbOrgScanData.FreeID;
var db_OrgScanData = AutoMapper.Mapper.Map<Db_OrgScanData>(lc_OrgScanData);
var db_OrgScanData = OrgLc_AutoMapperProfile.Mapper.Map<Db_OrgScanData>(lc_OrgScanData);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_OrgScanData));
}
orgDbModel.sqliteHelper.QueryTranAsync(sqls);
......@@ -409,7 +409,7 @@ namespace FLY.Thick.BlowingScan.Server.Model
//SQLs
List<string> sqls = new List<string>();
var db_Sample = AutoMapper.Mapper.Map<Db_Sample>(lc_Sample);
var db_Sample = Lc_AutoMapperProfile.Mapper.Map<Db_Sample>(lc_Sample);
sqls.Add(SQLiteHelper.GetInsertCommandText(db_Sample));
dbModel.sqliteHelper.QueryTranAsync(sqls);
......
......@@ -55,43 +55,5 @@ namespace FLY.Thick.BlowingScan.Server.Model
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class LC_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public LC_AutoMapperProfile()
{
CreateMap<Lc_OrgScanData, Db_OrgScanData>()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ForMember(s => s.ThicksDt, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.ThicksDt));
})
.ReverseMap()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
.ForMember(s => s.ThicksDt, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<DateTime[]>(s.ThicksDt));
});
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.Thick.BlowingScan.Server.Model
{
/// <summary>
/// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用
/// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
/// var cfg = new MapperConfigurationExpression();
/// cfg.AddMaps(assemblies);
/// Mapper.Initialize(cfg);
///
/// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!!
/// </summary>
public class OrgLc_AutoMapperProfile : AutoMapper.Profile
{
/// <summary>
///
/// </summary>
public static AutoMapper.IMapper Mapper;
static OrgLc_AutoMapperProfile()
{
var cfg = new AutoMapper.Configuration.MapperConfigurationExpression();
cfg.AddProfile<OrgLc_AutoMapperProfile>();
AutoMapper.MapperConfiguration config = new AutoMapper.MapperConfiguration(cfg);
Mapper = new AutoMapper.Mapper(config);
}
/// <summary>
///
/// </summary>
public OrgLc_AutoMapperProfile()
{
CreateMap<Lc_OrgScanData, Db_OrgScanData>()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks));
})
.ForMember(s => s.ThicksDt, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.ThicksDt));
})
.ReverseMap()
.ForMember(s => s.Thicks, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks));
})
.ForMember(s => s.ThicksDt, opt =>
{
opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<DateTime[]>(s.ThicksDt));
});
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment