forked from jevonsflash/ExcelPatternTool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
99 lines (84 loc) · 3.72 KB
/
Copy pathProgram.cs
File metadata and controls
99 lines (84 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using ExcelPatternTool.Contracts;
using ExcelPatternTool.Contracts.Models;
using ExcelPatternTool.Core.EntityProxy;
using ExcelPatternTool.Core.Patterns;
using Newtonsoft.Json;
using System.Diagnostics;
using DirFileHelper = ExcelPatternTool.Common.Helper.DirFileHelper;
namespace ExcelPatternTool
{
partial class Program
{
static void Main(string[] args)
{
if (!CliProcessor.ProcessCommandLine(args))
{
Console.WriteLine("缺少参数或参数不正确");
CliProcessor.Usage();
Environment.ExitCode = 1;
return;
}
try
{
var serializedstr = DirFileHelper.ReadFile(CliProcessor.patternFilePath);
var _pattern = JsonConvert.DeserializeObject<Pattern>(serializedstr);
ValidateProcessor.Init();
DbProcessor.Init();
var sw = Stopwatch.StartNew();
var op1 = new ImportOption(EntityProxyContainer.Current.EntityType, _pattern.ExcelImport.SheetNumber, _pattern.ExcelImport.SkipRow);
op1.SheetName=_pattern.ExcelImport.SheetName;
List<IExcelEntity> result;
if (CliProcessor.source=="excel")
{
result = DocProcessor.ImportFrom(CliProcessor.inputPathList.First(), op1);
}
else
{
result = DbProcessor.ImportFromDb(EntityProxyContainer.Current.EntityType, CliProcessor.source, CliProcessor.outputPathList.First());
}
ValidateProcessor.GetDataAction(result);
Console.WriteLine("校验完成,发现{0}个问题", ValidateProcessor.ProcessResultList.Count);
Console.WriteLine("ID\t位置\t严重程度\t说明");
foreach (var item in ValidateProcessor.ProcessResultList)
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}", item.Id, item.Position, item.Level, item.Content);
}
if (ValidateProcessor.ProcessResultList.Count>0)
{
Console.WriteLine("校验未通过 ,Time taken: {0}", sw.Elapsed);
Environment.ExitCode = 1;
return;
}
if (CliProcessor.destination=="excel")
{
var op2 = new ExportOption(EntityProxyContainer.Current.EntityType, _pattern.ExcelExport.SkipRow);
op2.SheetName=_pattern.ExcelExport.SheetName;
op2.GenHeaderRow=_pattern.ExcelExport.GenHeaderRow;
DocProcessor.SaveTo(
EntityProxyContainer.Current.EntityType,
CliProcessor.outputPathList.First(),
result, op2
);
Console.WriteLine("已成功完成,导出共 {0} 条数据", result.Count);
}
else
{
DbProcessor.ExportToDb(result, CliProcessor.destination, CliProcessor.outputPathList.First());
Console.WriteLine("已成功完成,导出共 {0} 条数据", result.Count);
}
sw.Stop();
Console.WriteLine("Time taken: {0}", sw.Elapsed);
}
catch (Exception ex)
{
Console.WriteLine("{0}未知错误:{0}{1}", Environment.NewLine, ex);
Environment.ExitCode = 2;
}
if (CliProcessor.waitAtEnd)
{
Console.WriteLine("{0}{0}敲击回车退出程序", Environment.NewLine);
Console.ReadLine();
}
}
}
}