467 lines
24 KiB
C#
467 lines
24 KiB
C#
|
using LinqToExcel; // 使用 LinqToExcel 讀 excel
|
|||
|
using Microsoft.Ajax.Utilities;
|
|||
|
using NLog;
|
|||
|
using Qcarbon.ViewModels.DTO;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading;
|
|||
|
using System.Web;
|
|||
|
using Weee.DAL;
|
|||
|
using Weee.Models;
|
|||
|
using Weee.Models.Paramemter;
|
|||
|
|
|||
|
namespace Weee.Areas.Admin.Supports
|
|||
|
{
|
|||
|
public class SimaproExcelImporter
|
|||
|
{
|
|||
|
protected Logger log;
|
|||
|
private ExcelQueryFactory excelFile;
|
|||
|
private string FName;
|
|||
|
|
|||
|
public SimaproExcelImporter(string fileName)
|
|||
|
{
|
|||
|
log = NLog.LogManager.GetCurrentClassLogger();
|
|||
|
log.Info("SimaproExcelImporter 1");
|
|||
|
excelFile = new ExcelQueryFactory(fileName);
|
|||
|
FName = fileName;//DL-6
|
|||
|
log.Info("SimaproExcelImporter 2");
|
|||
|
}
|
|||
|
|
|||
|
public void DeleteExcelFile(string fileName)
|
|||
|
{
|
|||
|
File.Delete(fileName);
|
|||
|
}
|
|||
|
|
|||
|
public void InsertSimaproData(string version, string description = "", string parasource = "")
|
|||
|
{
|
|||
|
log.Info("InsertSimaproData 1");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Encoding, "編碼");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Value, "kg CO2 eq");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Unit, "Unit");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Remark, "Remark");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Remark, "Remarks");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Database, "Database");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Database, "database");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Project, "Project");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Description, "Tool");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.typeTW, "類型");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.typeEN, "Cat");
|
|||
|
|
|||
|
log.Info("InsertSimaproData 2");
|
|||
|
var simaproVersion = new SimaproVersion();
|
|||
|
simaproVersion.Version = version;
|
|||
|
simaproVersion.Description = description;
|
|||
|
simaproVersion.paraSource = parasource;
|
|||
|
|
|||
|
int i = 0;
|
|||
|
System.Diagnostics.Debug.WriteLine("start " + DateTime.Now);
|
|||
|
using (var db = new WeeeDataContext())
|
|||
|
{
|
|||
|
simaproVersion = db.SimaproVersions.Add(simaproVersion);
|
|||
|
db.SaveChanges();
|
|||
|
|
|||
|
log.Info("InsertSimaproData 3");
|
|||
|
var sheetNames = excelFile.GetWorksheetNames();
|
|||
|
log.Info("InsertSimaproData 4");
|
|||
|
|
|||
|
foreach (var sheetName in sheetNames)
|
|||
|
{
|
|||
|
System.Diagnostics.Debug.WriteLine("start row: " + " " + DateTime.Now);
|
|||
|
|
|||
|
log.Info("InsertSimaproData 5");
|
|||
|
var rows = from c in excelFile.Worksheet(sheetName) select c;
|
|||
|
log.Info("InsertSimaproData 6");
|
|||
|
System.Diagnostics.Debug.WriteLine("end row: " + " " + DateTime.Now);
|
|||
|
if (rows.Count() > 0)
|
|||
|
{
|
|||
|
var simaproParameterCategory = new SimaproParameterCategory();
|
|||
|
|
|||
|
simaproParameterCategory.DisplayNameTW = sheetName;
|
|||
|
simaproParameterCategory.DisplayNameCN = sheetName;
|
|||
|
simaproParameterCategory.DisplayNameEN = sheetName;
|
|||
|
simaproParameterCategory.VersionID = simaproVersion.ID;
|
|||
|
simaproParameterCategory = db.SimaproCategories.Add(simaproParameterCategory);
|
|||
|
db.SaveChanges();
|
|||
|
|
|||
|
i++;
|
|||
|
System.Diagnostics.Debug.WriteLine("start SimaproParameterType: " + i + " " + DateTime.Now);
|
|||
|
|
|||
|
/*
|
|||
|
* simaproParameterTypes
|
|||
|
*/
|
|||
|
Dictionary<string, int> simTypeEN = new Dictionary<string, int>();
|
|||
|
Dictionary<string, int> simTypeTW = new Dictionary<string, int>();
|
|||
|
|
|||
|
log.Info("InsertSimaproData 7");
|
|||
|
excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameTW, "類型");
|
|||
|
excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameCN, "类型");
|
|||
|
excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameEN, "Cat");
|
|||
|
var excelContent = excelFile.Worksheet<SimaproParameterType>(sheetName);
|
|||
|
|
|||
|
log.Info("InsertSimaproData 8");
|
|||
|
Dictionary<String, SimaproParameterType> listSimaproParameterType = new Dictionary<String, SimaproParameterType>();
|
|||
|
foreach (var row in excelContent)
|
|||
|
{
|
|||
|
|
|||
|
string nameEN = "";
|
|||
|
if (row.DisplayNameEN != null)
|
|||
|
nameEN = row.DisplayNameEN;
|
|||
|
string nameCN = "";
|
|||
|
if (row.DisplayNameCN != null)
|
|||
|
nameCN = row.DisplayNameCN;
|
|||
|
string nameDefault = "";
|
|||
|
if (row.DisplayNameTW != null)
|
|||
|
nameDefault = row.DisplayNameTW;
|
|||
|
else
|
|||
|
nameDefault = nameEN;
|
|||
|
|
|||
|
var simaproParameterType = new SimaproParameterType();
|
|||
|
simaproParameterType.DisplayNameTW = nameDefault;
|
|||
|
simaproParameterType.DisplayNameCN = nameCN;
|
|||
|
simaproParameterType.DisplayNameEN = nameEN;
|
|||
|
simaproParameterType.CategoryID = simaproParameterCategory.ID;
|
|||
|
if (!string.IsNullOrWhiteSpace(nameDefault) && !listSimaproParameterType.ContainsKey(nameDefault))
|
|||
|
{
|
|||
|
listSimaproParameterType.Add(nameDefault, simaproParameterType);
|
|||
|
}
|
|||
|
}
|
|||
|
System.Diagnostics.Debug.WriteLine("end SimaproParameterType: " + i + " " + DateTime.Now);
|
|||
|
db.SimaproTypes.AddRange(listSimaproParameterType.Values);
|
|||
|
db.SaveChanges();
|
|||
|
foreach (SimaproParameterType simaproParameterType in listSimaproParameterType.Values)
|
|||
|
{
|
|||
|
if (!string.IsNullOrWhiteSpace(simaproParameterType.DisplayNameEN) && !simTypeEN.ContainsKey(simaproParameterType.DisplayNameEN))
|
|||
|
{
|
|||
|
simTypeEN.Add(simaproParameterType.DisplayNameEN, simaproParameterType.ID);
|
|||
|
}
|
|||
|
if (!string.IsNullOrWhiteSpace(simaproParameterType.DisplayNameTW) && !simTypeTW.ContainsKey(simaproParameterType.DisplayNameTW))
|
|||
|
{
|
|||
|
simTypeTW.Add(simaproParameterType.DisplayNameTW, simaproParameterType.ID);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
System.Diagnostics.Debug.WriteLine("end add SimaproParameterType: " + i + " " + DateTime.Now);
|
|||
|
|
|||
|
System.Diagnostics.Debug.WriteLine("start simaproParameters: " + i + " " + DateTime.Now);
|
|||
|
/*
|
|||
|
* simaproParameters
|
|||
|
*/
|
|||
|
var emptySimaproType = new SimaproParameterType();
|
|||
|
emptySimaproType.DisplayNameTW = "(全部)";
|
|||
|
emptySimaproType.DisplayNameCN = "(全部)";
|
|||
|
emptySimaproType.DisplayNameEN = "(all)";
|
|||
|
emptySimaproType.CategoryID = simaproParameterCategory.ID;
|
|||
|
|
|||
|
log.Info("InsertSimaproData 9");
|
|||
|
List<SimaproParameter> listSimaproParameterImport = new List<SimaproParameter>();
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.DisplayNameTW, "中文");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.DisplayNameCN, "簡體中文");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.DisplayNameEN, "Simapro name");
|
|||
|
var excelContent2 = excelFile.Worksheet<SimaproParameterImport>(sheetName);
|
|||
|
|
|||
|
log.Info("InsertSimaproData 10");
|
|||
|
foreach (var row in excelContent2)
|
|||
|
{
|
|||
|
var simaproParameter = new SimaproParameter();
|
|||
|
|
|||
|
simaproParameter.DisplayNameTW = row.DisplayNameTW != null ? row.DisplayNameTW : row.DisplayNameEN;
|
|||
|
if (string.IsNullOrWhiteSpace(simaproParameter.DisplayNameTW))
|
|||
|
{
|
|||
|
Thread.Sleep(0);
|
|||
|
continue;
|
|||
|
}
|
|||
|
simaproParameter.DisplayNameCN = row.DisplayNameCN;
|
|||
|
simaproParameter.DisplayNameEN = row.DisplayNameEN;
|
|||
|
simaproParameter.Encoding = row.Encoding;
|
|||
|
simaproParameter.Value = row.Value;
|
|||
|
simaproParameter.Unit = row.Unit;
|
|||
|
simaproParameter.Remark = row.Remark;
|
|||
|
simaproParameter.Database = row.Database;
|
|||
|
simaproParameter.Project = row.Project;
|
|||
|
simaproParameter.Description = row.Description;
|
|||
|
|
|||
|
if (!string.IsNullOrWhiteSpace(row.typeEN) && simTypeEN.ContainsKey(row.typeEN))
|
|||
|
{
|
|||
|
simaproParameter.TypeID = simTypeEN[row.typeEN];
|
|||
|
listSimaproParameterImport.Add(simaproParameter);
|
|||
|
}
|
|||
|
else if (!string.IsNullOrWhiteSpace(row.typeTW) && simTypeTW.ContainsKey(row.typeTW))
|
|||
|
{
|
|||
|
simaproParameter.TypeID = simTypeTW[row.typeTW];
|
|||
|
listSimaproParameterImport.Add(simaproParameter);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SimaproParameter paraRec;
|
|||
|
string json = CScommon.JsonUtl.fromT(simaproParameter);
|
|||
|
paraRec = CScommon.JsonUtl.toT<SimaproParameter>(json);
|
|||
|
emptySimaproType.Parameters.Add(paraRec);
|
|||
|
}
|
|||
|
if (listSimaproParameterImport.Count >= 1000)
|
|||
|
{
|
|||
|
db.SimaproParameters.AddRange(listSimaproParameterImport);
|
|||
|
db.SaveChanges();
|
|||
|
listSimaproParameterImport.Clear();
|
|||
|
}
|
|||
|
}
|
|||
|
System.Diagnostics.Debug.WriteLine("end simaproParameters: " + i + " " + DateTime.Now);
|
|||
|
if (listSimaproParameterImport.Count > 0)
|
|||
|
{
|
|||
|
db.SimaproParameters.AddRange(listSimaproParameterImport);
|
|||
|
db.SaveChanges();
|
|||
|
}
|
|||
|
System.Diagnostics.Debug.WriteLine("end add simaproParameters: " + i + " " + DateTime.Now);
|
|||
|
|
|||
|
if (emptySimaproType.Parameters.Count > 0)
|
|||
|
{
|
|||
|
db.SimaproTypes.Add(emptySimaproType);
|
|||
|
db.SaveChanges();
|
|||
|
}
|
|||
|
System.Diagnostics.Debug.WriteLine("end saving: " + i + " " + DateTime.Now);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
System.Diagnostics.Debug.WriteLine("end " + DateTime.Now);
|
|||
|
}
|
|||
|
Thread.Sleep(0);
|
|||
|
log.Info("InsertSimaproData 11 end");
|
|||
|
}
|
|||
|
|
|||
|
public void OLDInsertSimaproData(string version, string description = "", string parasource = "")
|
|||
|
{
|
|||
|
System.Diagnostics.Debug.WriteLine("start " + DateTime.Now);
|
|||
|
var simaproVersion = new SimaproVersion();
|
|||
|
simaproVersion.Version = version;
|
|||
|
simaproVersion.Description = description;
|
|||
|
simaproVersion.paraSource = parasource;
|
|||
|
|
|||
|
int i = 0;
|
|||
|
var simaproParameterCategories = this.MappingExcelColumnToSimaproParameterCategory();
|
|||
|
using (var db = new WeeeDataContext())
|
|||
|
{
|
|||
|
foreach (var simaproParameterCategory in simaproParameterCategories)
|
|||
|
{
|
|||
|
i++;
|
|||
|
var sheetName = simaproParameterCategory.DisplayNameEN;
|
|||
|
var simaproParameterTypes = this.MappingExcelColumnToSimaproParameterType(sheetName);
|
|||
|
var simaproParameters = this.MappingExcelColumnToSimaproParameter(sheetName);
|
|||
|
|
|||
|
var emptySimaproType=new SimaproParameterType();
|
|||
|
emptySimaproType.DisplayNameTW = "(全部)";
|
|||
|
emptySimaproType.DisplayNameCN = "(全部)";
|
|||
|
emptySimaproType.DisplayNameEN = "(all)";
|
|||
|
//simaproParameterTypes = this.SimaproTypeNormalization(simaproParameterTypes);
|
|||
|
Dictionary<string, SimaproParameterType> simTypeEN = new Dictionary<string, SimaproParameterType>();
|
|||
|
Dictionary<string, SimaproParameterType> simTypeTW = new Dictionary<string, SimaproParameterType>();
|
|||
|
int j = 0;
|
|||
|
foreach (var rec in simaproParameterTypes)
|
|||
|
{
|
|||
|
if (!string.IsNullOrWhiteSpace(rec.Value.DisplayNameEN))
|
|||
|
simTypeEN.Add(rec.Value.DisplayNameEN, rec.Value);
|
|||
|
if (!string.IsNullOrWhiteSpace(rec.Value.DisplayNameTW))
|
|||
|
simTypeTW.Add(rec.Value.DisplayNameTW, rec.Value);
|
|||
|
j++;
|
|||
|
}
|
|||
|
j = 0;
|
|||
|
foreach (var simaproParameter in simaproParameters)
|
|||
|
{
|
|||
|
SimaproParameter paraRec;
|
|||
|
string json = CScommon.JsonUtl.fromT(simaproParameter);
|
|||
|
paraRec = CScommon.JsonUtl.toT<SimaproParameter>(json);
|
|||
|
if (!string.IsNullOrWhiteSpace(simaproParameter.typeEN) &&
|
|||
|
simTypeEN.ContainsKey(simaproParameter.typeEN))
|
|||
|
simTypeEN[simaproParameter.typeEN].Parameters.Add(paraRec);
|
|||
|
else if (!string.IsNullOrWhiteSpace(simaproParameter.typeTW) &&
|
|||
|
simTypeTW.ContainsKey(simaproParameter.typeTW))
|
|||
|
simTypeTW[simaproParameter.typeTW].Parameters.Add(paraRec);
|
|||
|
//if (simaproParameter.typeEN == simaproParameterType.DisplayNameEN ||
|
|||
|
// simaproParameter.typeTW == simaproParameterType.DisplayNameTW)
|
|||
|
//{
|
|||
|
// simaproParameterType.Parameters.Add(paraRec);
|
|||
|
//}
|
|||
|
else
|
|||
|
emptySimaproType.Parameters.Add(paraRec);
|
|||
|
j++;
|
|||
|
}
|
|||
|
if (emptySimaproType.Parameters.Count>0)
|
|||
|
simaproParameterTypes.Add(emptySimaproType.DisplayNameTW, emptySimaproType);
|
|||
|
j = 0;
|
|||
|
foreach (var simaproParameterType in simaproParameterTypes)
|
|||
|
{
|
|||
|
simaproParameterCategory.SubTypes.Add(simaproParameterType.Value);
|
|||
|
j++;
|
|||
|
}
|
|||
|
simaproVersion.Categories.Add(simaproParameterCategory);
|
|||
|
}
|
|||
|
db.SimaproVersions.Add(simaproVersion);
|
|||
|
db.SaveChanges();
|
|||
|
}
|
|||
|
Thread.Sleep(0);
|
|||
|
System.Diagnostics.Debug.WriteLine("end " + DateTime.Now);
|
|||
|
}
|
|||
|
|
|||
|
private List<SimaproParameterCategory> MappingExcelColumnToSimaproParameterCategory()
|
|||
|
{
|
|||
|
var simaproParameterCategories = new List<SimaproParameterCategory>();
|
|||
|
var sheetNames = excelFile.GetWorksheetNames();
|
|||
|
|
|||
|
foreach (var sheetName in sheetNames)
|
|||
|
{
|
|||
|
var rows = from c in excelFile.Worksheet(sheetName) select c;
|
|||
|
if (rows.Count() > 0)
|
|||
|
{
|
|||
|
//var cols = excelFile.GetColumnNames(sheetName);
|
|||
|
//if (cols.Count() >= 7 || ! FName.Contains("xlsx"))
|
|||
|
{
|
|||
|
var simaproParameterCategory = new SimaproParameterCategory();
|
|||
|
|
|||
|
simaproParameterCategory.DisplayNameTW = sheetName;
|
|||
|
simaproParameterCategory.DisplayNameCN = sheetName;
|
|||
|
simaproParameterCategory.DisplayNameEN = sheetName;
|
|||
|
|
|||
|
simaproParameterCategories.Add(simaproParameterCategory);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return simaproParameterCategories;
|
|||
|
}
|
|||
|
|
|||
|
private Dictionary<string, SimaproParameterType> MappingExcelColumnToSimaproParameterType(string sheetName)
|
|||
|
{
|
|||
|
var simaproParameterTypes = new Dictionary<string, SimaproParameterType>();
|
|||
|
|
|||
|
//excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameTW, "中文");
|
|||
|
//excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameCN, "簡體中文");
|
|||
|
//excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameEN, "Simapro name");
|
|||
|
|
|||
|
excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameTW, "類型");
|
|||
|
excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameCN, "类型");
|
|||
|
excelFile.AddMapping<SimaproParameterType>(x => x.DisplayNameEN, "Cat");
|
|||
|
|
|||
|
var excelContent = excelFile.Worksheet<SimaproParameterType>(sheetName);
|
|||
|
int counts = excelContent.ToList().Count;
|
|||
|
int i = 0;
|
|||
|
foreach (var row in excelContent)
|
|||
|
{
|
|||
|
i++;
|
|||
|
var simaproParameterType = new SimaproParameterType();
|
|||
|
|
|||
|
string nameEN = "";
|
|||
|
if (row.DisplayNameEN != null)
|
|||
|
nameEN = row.DisplayNameEN;//.Split(',')[0];
|
|||
|
//else
|
|||
|
// continue;
|
|||
|
string nameCN = "";
|
|||
|
if (row.DisplayNameCN != null)
|
|||
|
nameCN = row.DisplayNameCN;//.Split(',')[0];
|
|||
|
|
|||
|
string nameDefault = "";
|
|||
|
if (row.DisplayNameTW != null)
|
|||
|
nameDefault = row.DisplayNameTW;//.Split(',')[0];
|
|||
|
else
|
|||
|
nameDefault = nameEN;
|
|||
|
simaproParameterType.DisplayNameTW = nameDefault;
|
|||
|
//if (string.IsNullOrWhiteSpace(nameDefault))
|
|||
|
//{
|
|||
|
// continue;
|
|||
|
// Thread.Sleep(0);
|
|||
|
//}
|
|||
|
simaproParameterType.DisplayNameCN = nameCN;
|
|||
|
simaproParameterType.DisplayNameEN = nameEN;
|
|||
|
if (!string.IsNullOrWhiteSpace(nameDefault) &&
|
|||
|
!simaproParameterTypes.ContainsKey(nameDefault))
|
|||
|
simaproParameterTypes.Add(nameDefault, simaproParameterType);
|
|||
|
}
|
|||
|
return simaproParameterTypes;
|
|||
|
}
|
|||
|
|
|||
|
private List<SimaproParameterImport> MappingExcelColumnToSimaproParameter(string sheetName)
|
|||
|
{
|
|||
|
var simaproParameters = new List<SimaproParameterImport>();
|
|||
|
try
|
|||
|
{
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.DisplayNameTW, "中文");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.DisplayNameCN, "簡體中文");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.DisplayNameEN, "Simapro name");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Encoding, "編碼");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Value, "kg CO2 eq");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Unit, "Unit");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Remark, "Remark");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Remark, "Remarks");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Database, "Database");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Database, "database");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Project, "Project");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.Description, "Tool");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.typeTW, "類型");
|
|||
|
excelFile.AddMapping<SimaproParameterImport>(x => x.typeEN, "Cat");
|
|||
|
|
|||
|
var excelContent = excelFile.Worksheet<SimaproParameterImport>(sheetName);
|
|||
|
int rows = 0;
|
|||
|
foreach (var row in excelContent)
|
|||
|
{
|
|||
|
var simaproParameter = new SimaproParameterImport();
|
|||
|
|
|||
|
//if (row.DisplayNameEN == null) { continue; }
|
|||
|
|
|||
|
simaproParameter.DisplayNameTW = row.DisplayNameTW != null ?
|
|||
|
row.DisplayNameTW : row.DisplayNameEN;
|
|||
|
if (string.IsNullOrWhiteSpace(simaproParameter.DisplayNameTW))
|
|||
|
{
|
|||
|
Thread.Sleep(0);
|
|||
|
continue;
|
|||
|
}
|
|||
|
rows++;
|
|||
|
simaproParameter.DisplayNameCN = row.DisplayNameCN;
|
|||
|
simaproParameter.DisplayNameEN = row.DisplayNameEN;
|
|||
|
simaproParameter.Encoding = row.Encoding;
|
|||
|
simaproParameter.Value = row.Value;
|
|||
|
simaproParameter.Unit = row.Unit;
|
|||
|
simaproParameter.Remark = row.Remark;
|
|||
|
simaproParameter.Database = row.Database;
|
|||
|
simaproParameter.Project=row.Project;
|
|||
|
simaproParameter.Description = row.Description;
|
|||
|
simaproParameter.typeTW = row.typeTW;
|
|||
|
simaproParameter.typeEN = row.typeEN;
|
|||
|
|
|||
|
simaproParameters.Add(simaproParameter);
|
|||
|
}
|
|||
|
}
|
|||
|
catch(Exception ex)
|
|||
|
{
|
|||
|
throw new Exception($"sheet: {sheetName} failed({ex.Message})");
|
|||
|
}
|
|||
|
return simaproParameters;
|
|||
|
}
|
|||
|
|
|||
|
private List<SimaproParameterType> SimaproTypeNormalization(List<SimaproParameterType> simaproParameterTypes)
|
|||
|
{
|
|||
|
var resultOfSimaproTypes = new List<SimaproParameterType>();
|
|||
|
|
|||
|
foreach (var simaproParameterType in simaproParameterTypes)
|
|||
|
{
|
|||
|
var IsExist = false;
|
|||
|
foreach (var resultOfSimaproType in resultOfSimaproTypes)
|
|||
|
{
|
|||
|
if (!string.IsNullOrWhiteSpace(resultOfSimaproType.DisplayNameEN) &&
|
|||
|
resultOfSimaproType.DisplayNameEN == simaproParameterType.DisplayNameEN)
|
|||
|
{
|
|||
|
IsExist = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
if (!string.IsNullOrWhiteSpace(resultOfSimaproType.DisplayNameTW) &&
|
|||
|
resultOfSimaproType.DisplayNameTW == simaproParameterType.DisplayNameTW)
|
|||
|
{
|
|||
|
IsExist = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (!IsExist && !string.IsNullOrWhiteSpace(simaproParameterType.DisplayNameTW))
|
|||
|
resultOfSimaproTypes.Add(simaproParameterType);
|
|||
|
}
|
|||
|
return resultOfSimaproTypes;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|