public static List<GenerateCodeInfo> GetGenerateCodeInfoList(List<Type> typeList) { if ((typeList == null) || (typeList.Count == 0)) { return new List<GenerateCodeInfo>(); } List<GenerateCodeInfo> list = new List<GenerateCodeInfo>(typeList.Count); foreach (Type type in typeList) { GenerateCodeInfo class2 = new GenerateCodeInfo { GenerateParameters = GetGenerateParametersInfo(type) }; class2.ClassCodeString = GenerateClass(class2.GenerateParameters); list.Add(class2); } return list; }
static public GenerateCodeInfo Files(string[] filePaths, Action <ProgressInfo, string> callback = null) { GenerateCodeInfo result = new GenerateCodeInfo(); StringBuilder code = new StringBuilder(); using (ExcelAssist excelAssist = new ExcelAssist()) { for (int i = 0; i < filePaths.Length; i++) { using (SQLitePathInfo info = new SQLitePathInfo(filePaths[i])) { result.Path = info.DirectoryPath; SQLiteData[] dataSets = excelAssist.Read(filePaths[i]); if (null != dataSets) { for (int j = 0; j < dataSets.Length; j++) { SQLiteAssist.CreateTable(info.SqlConnection, dataSets[j]); SQLiteAssist.Insert(info.SqlConnection, dataSets[j], (insertPercent) => { callback(new ProgressInfo(i / (float)filePaths.Length, insertPercent), String.Format("{0} ({1}/{2})", info.FileName, j + 1, dataSets.Length)); }); code.Append(dataSets[j].GetCode(info.FileName)); code.Append("\n"); } } callback?.Invoke(new ProgressInfo((i + 1) / (float)filePaths.Length, 1.0f), String.Format("{0} ({1}/{1})", info.FileName, dataSets.Length)); } } } result.Code = code.ToString(); return(result); }