markus / ConvertService / ServiceBase / DocItemCheck / DocumentItemCheck.cs @ 03960fa5
이력 | 보기 | 이력해설 | 다운로드 (4.21 KB)
1 | c740ccc7 | taeseongkim | using log4net; |
---|---|---|---|
2 | using Markus.Service.Convert.Plugin; |
||
3 | a72d2650 | taeseongkim | using Markus.Service.Extensions; |
4 | using System; |
||
5 | using System.Collections.Generic; |
||
6 | using System.Data.Entity.Core.Objects; |
||
7 | using System.Data.Entity.Infrastructure; |
||
8 | using System.Linq; |
||
9 | using System.Text; |
||
10 | using System.Threading.Tasks; |
||
11 | |||
12 | namespace DocItemCheck |
||
13 | { |
||
14 | public class DocumentItemCheck : Markus.Service.Convert.Plugin.IPlugin |
||
15 | { |
||
16 | public string Name => nameof(DocItemCheck); |
||
17 | |||
18 | public string Exception { get; set; } |
||
19 | public string gConvertID; |
||
20 | |||
21 | private const string MARKUS_ConnectionString_KEY = "MARKUS_ConnectionString"; |
||
22 | |||
23 | bool IPlugin.Do(string ConvertID, Dictionary<string, object> Parameters) |
||
24 | { |
||
25 | bool result = true; |
||
26 | |||
27 | c740ccc7 | taeseongkim | log4net.Config.BasicConfigurator.Configure(); |
28 | log4net.ILog log = log4net.LogManager.GetLogger(typeof(DocumentItemCheck)); |
||
29 | a72d2650 | taeseongkim | |
30 | try |
||
31 | { |
||
32 | if (Parameters.Keys.Count(x => x == MARKUS_ConnectionString_KEY) > 0) |
||
33 | { |
||
34 | string connectionString = Parameters[MARKUS_ConnectionString_KEY].ToString(); |
||
35 | |||
36 | using (var entities = new Markus.EntityModel.MarkusModel(Markus.Service.Extensions.Encrypt.AESEncrypter.Decrypt(connectionString))) |
||
37 | { |
||
38 | string sql = @"SELECT " + |
||
39 | " doc.PROJECT_NO as PROJECT_NO " + |
||
40 | " ,doc.DOCUMENT_ID as DOCUMENT_ID " + |
||
41 | " ,doc.ORIGINAL_FILE as ORIGINAL_FILE " + |
||
42 | " FROM MarkusModel.DOCUMENT_ITEM as doc " + |
||
43 | " LEFT OUTER JOIN MarkusModel.CONVERTER_DOC as con " + |
||
44 | " ON doc.DOCUMENT_ID = con.DOCUMENT_ID and doc.PROJECT_NO = con.PROJECT_NO " + |
||
45 | " where con.DOCUMENT_ID is null"; |
||
46 | |||
47 | var docItems = (entities as IObjectContextAdapter).ObjectContext.CreateQuery<System.Data.Common.DbDataRecord>(sql); |
||
48 | |||
49 | if (docItems.Count() > 0) |
||
50 | { |
||
51 | foreach (var dataRecord in docItems) |
||
52 | { |
||
53 | string projctNo = dataRecord["PROJECT_NO"]?.ToString().Trim(); |
||
54 | string documentId = dataRecord["DOCUMENT_ID"]?.ToString().Trim(); |
||
55 | string originalUrl = dataRecord["ORIGINAL_FILE"]?.ToString(); |
||
56 | |||
57 | if (!string.IsNullOrWhiteSpace(projctNo) && !string.IsNullOrWhiteSpace(documentId) && !string.IsNullOrWhiteSpace(originalUrl)) |
||
58 | { |
||
59 | string convertId = GuidExtension.shortGuid(); |
||
60 | |||
61 | var param = new [] { |
||
62 | new System.Data.SqlClient.SqlParameter("ID",convertId), |
||
63 | new System.Data.SqlClient.SqlParameter("PROJECT_NO",projctNo), |
||
64 | new System.Data.SqlClient.SqlParameter("DOCUMENT_URL",originalUrl), |
||
65 | new System.Data.SqlClient.SqlParameter( "DOCUMENT_ID",documentId) |
||
66 | }; |
||
67 | |||
68 | (entities as IObjectContextAdapter).ObjectContext.ExecuteStoreQuery<object>("SELECT_CONVERT_INSERT @ID, @PROJECT_NO, @DOCUMENT_URL , @DOCUMENT_ID", param); |
||
69 | c740ccc7 | taeseongkim | |
70 | log.Warn($"[Insert Convert_Doc] ID : {convertId} / PROJECT_NO : {projctNo} / DOCUMENT_URL : {originalUrl} / DOCUMENT_ID : {documentId} "); |
||
71 | a72d2650 | taeseongkim | } |
72 | } |
||
73 | } |
||
74 | c740ccc7 | taeseongkim | else |
75 | { |
||
76 | log.Info($"Document Item Check - Null"); |
||
77 | } |
||
78 | |||
79 | a72d2650 | taeseongkim | } |
80 | } |
||
81 | else |
||
82 | { |
||
83 | this.Exception = "MARKUS_ConnectionString SECTION Not Found"; |
||
84 | } |
||
85 | } |
||
86 | |||
87 | catch (Exception ex) |
||
88 | { |
||
89 | c740ccc7 | taeseongkim | log.Error(ex); |
90 | a72d2650 | taeseongkim | this.Exception = ex.ToString(); |
91 | result = false; |
||
92 | } |
||
93 | |||
94 | return result; |
||
95 | } |
||
96 | } |
||
97 | } |