-
Notifications
You must be signed in to change notification settings - Fork 1
/
IApp.cs
129 lines (109 loc) · 4.09 KB
/
IApp.cs
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using Newtonsoft.Json;
using System;
using System.Text;
namespace SimpleHttpServer
{
public enum STATE_GOO_SERVICE
{
NONE,
GOO_AUTHEN_PROCESSING,
GOO_AUTHEN_SUCCESS,
GOO_AUTHEN_FAIL_MISS_KEY,
GOO_AUTHEN_FAIL_INVALID_KEY,
}
public enum STATE_OCR
{
NONE,
OCR_IS_BUSY,
OCR_FAIL_AUTHEN,
OCR_FAIL_MISS_FILE,
OCR_FAIL_MISS_QUERY_STRING,
OCR_FAIL_READ_FILE,
OCR_FAIL_DOWNLOAD_FILE,
OCR_FAIL_ROTATE_IMAGE,
OCR_FAIL_THROW_ERROR,
OCR_FAIL_ENGINE_ERROR,
OCR_SUCCESS
}
public enum SIDE_IMAGE
{
FRONT,
BACK
}
public class OcrImageInfo {
public bool WriteToFile { get; set; }
public bool IsUrl { get; set; }
public bool DownloadSuccess { get; set; }
public long TimeStart { get; set; }
public long TimeComplete { get; set; }
public SIDE_IMAGE SideImage { get; set; }
public string TextError { get; set; }
public string TextResult { get; set; }
public string FileName { get; set; }
public string Url { get; set; }
public STATE_OCR StateOcr { get; set; }
public string app_getJsonResult(IApp app)
{
bool ok = this.StateOcr == STATE_OCR.OCR_SUCCESS;
var ocr = new CMT();
if (ok) {
string xText = this.TextResult;
var id_ = new OcrConfig(xText, OCR_DATA_TYPE.CMT_ID).Execute();
var name_ = new OcrConfig(xText, OCR_DATA_TYPE.CMT_FULLNAME).Execute();
var birthday_ = new OcrConfig(xText, OCR_DATA_TYPE.CMT_BIRTHDAY).Execute();
var address_ = new OcrConfig(xText, OCR_DATA_TYPE.CMT_ADDRESS).Execute();
StringBuilder bi = new StringBuilder();
if (!id_.Success) bi.Append(id_.Error + Environment.NewLine);
if (!name_.Success) bi.Append(name_.Error + Environment.NewLine);
if (!birthday_.Success) bi.Append(birthday_.Error + Environment.NewLine); ;
if (!address_.Success) bi.Append(address_.Error + Environment.NewLine);
ocr.page = id_.Page;
ocr.id = id_.Result;
ocr.fullname = name_.Result;
ocr.birthday = birthday_.Result;
ocr.address = address_.Result;
ocr.file = this.FileName;
ocr.text = xText;
//ocr.error = id_.Error;
//ocr.error = name_.Error;
//ocr.error = birthday_.Error;
ocr.error = address_.Error;
}
string json = JsonConvert.SerializeObject(new
{
Ok = ok,
ServiceState = app != null ? app.StateGooService.ToString() : STATE_GOO_SERVICE.NONE.ToString(),
State = this.StateOcr.ToString(),
Request = new
{
File = this.FileName,
Url = this.Url,
Side = this.SideImage.ToString()
},
Result = new
{
Text = this.TextResult,
//Item = ok ? new CMT(true, this.TextResult) : new CMT(this.TextError)
Item = ocr
},
Error = this.TextError,
TimeStart = this.TimeStart
}, Formatting.Indented);
long timeComplete = long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"));
json = json.Substring(0, json.Length - 1) + Environment.NewLine +
@", ""TimeComplete"": " + timeComplete + "}";
return json;
}
}
public interface IApp
{
string PATH_OCR_IMAGE { get; }
STATE_GOO_SERVICE StateGooService { get; set; }
//string app_getJsonResult(OcrImageInfo ocr);
string app_getJsonToken();
string app_getState();
string setTitleMessage(string message = "");
void writeLogMessage(string message = "");
OcrImageInfo goo_ocr_uploadFile(OcrImageInfo ocr);
}
}