hytos / ID2.Manager / ID2.Manager.Dapper / Repository / MarkusRepository.cs @ 00d11333
이력 | 보기 | 이력해설 | 다운로드 (8.58 KB)
1 | 1a88080d | taeseongkim | using Dapper; |
---|---|---|---|
2 | using DapperParameters; |
||
3 | using ID2.Manager.Dapper.Entities; |
||
4 | 0b008ea6 | taeseongkim | using ID2.Manager.Data.Models; |
5 | 1a88080d | taeseongkim | using System; |
6 | using System.Collections.Generic; |
||
7 | using System.Data; |
||
8 | using System.Linq; |
||
9 | using System.Text; |
||
10 | using System.Threading.Tasks; |
||
11 | |||
12 | namespace ID2.Manager.Dapper.Repository |
||
13 | { |
||
14 | public class MarkusRepository : BaseRepository |
||
15 | { |
||
16 | public MarkusRepository(string connectionStr) : base(connectionStr) { } |
||
17 | |||
18 | c112c3c3 | taeseongkim | public bool Insert(string ProjectNo,string Name) |
19 | 1a88080d | taeseongkim | { |
20 | bool result = false; |
||
21 | |||
22 | d1d8c5ea | taeseongkim | var convertDocID = CreateConvertDoc(ProjectNo, Name + ".pdf", Name); |
23 | 1a88080d | taeseongkim | |
24 | if (convertDocID != null) |
||
25 | { |
||
26 | 098748fa | taeseongkim | var serviceId = this.QueryFirst<string>("SELECT ID FROM SERVICE_PROPERTIES WHERE SERVICE_TYPE = 3"); |
27 | |||
28 | d1d8c5ea | taeseongkim | //var statusResult = UpdateStatusAsync(serviceId, convertDocID, 4, 1, 1, null); |
29 | 1a88080d | taeseongkim | |
30 | d1d8c5ea | taeseongkim | //var docInfoID = CreateDocInfo(convertDocID, 1); |
31 | 1a88080d | taeseongkim | |
32 | d1d8c5ea | taeseongkim | //var docPageResult = CreateDocPage(new[]{ |
33 | //new DocPage { |
||
34 | // docinfo_id = docInfoID, |
||
35 | // page_angle = 0, |
||
36 | // page_width = "9600", |
||
37 | // page_height = "6787", |
||
38 | // page_number = 1 |
||
39 | 1a88080d | taeseongkim | |
40 | d1d8c5ea | taeseongkim | //} }); |
41 | 1a88080d | taeseongkim | |
42 | c112c3c3 | taeseongkim | var documentItemID = CreateOrUPdateDocItem( |
43 | 1a88080d | taeseongkim | new DOCUMENTITEM |
44 | { |
||
45 | REVISION = "0", |
||
46 | PROJECT_NO = ProjectNo, |
||
47 | DOCUMENT_NO = Name, |
||
48 | GROUP_NO = Name, |
||
49 | DOCUMENT_NAME = Name, |
||
50 | ORIGINAL_FILE = Name, |
||
51 | DOCUMENT_ID = Name |
||
52 | }); |
||
53 | |||
54 | d1d8c5ea | taeseongkim | //if (statusResult == 1 && docInfoID != null && docPageResult && documentItemID != null) |
55 | if (documentItemID != null) |
||
56 | 1a88080d | taeseongkim | { |
57 | result = true; |
||
58 | } |
||
59 | } |
||
60 | |||
61 | return result; |
||
62 | } |
||
63 | |||
64 | d1d8c5ea | taeseongkim | public IEnumerable<ConvertDoc> GetConvertDoc(int status,string ProjectNo) |
65 | { |
||
66 | string SQL = "SELECT * FROM CONVERTER_DOC WHERE STATUS = @STATUS and PROJECT_NO = @PROJECT_NO"; |
||
67 | |||
68 | var parameters = new DynamicParameters(); |
||
69 | parameters.Add("@STATUS", status); |
||
70 | parameters.Add("@PROJECT_NO", ProjectNo); |
||
71 | |||
72 | var convertItems = base.Query<ConvertDoc>(SQL, parameters); |
||
73 | |||
74 | return convertItems; |
||
75 | } |
||
76 | |||
77 | 0b008ea6 | taeseongkim | public IEnumerable<MarkupText> GetMarkupText(IEnumerable<string> ProjectNoList, IEnumerable<string> DocumentNoList) |
78 | { |
||
79 | string SQL = "GET_MARKUPDATA"; |
||
80 | |||
81 | var parameters = new DynamicParameters(); |
||
82 | parameters.AddTable("@PROJECT_NOs", "VARCHAR_TABLE", ProjectNoList.Select(x=>new VARCHAR_TABLE { ITEM = x })); |
||
83 | parameters.AddTable("@DOCUMENT_IDs", "VARCHAR_TABLE", DocumentNoList.Select(x => new VARCHAR_TABLE { ITEM = x })); |
||
84 | |||
85 | var Items = base.Query<MarkupText>(SQL, parameters,commandType:CommandType.StoredProcedure); |
||
86 | |||
87 | return Items; |
||
88 | } |
||
89 | |||
90 | 1a88080d | taeseongkim | /// <summary> |
91 | /// 완료 |
||
92 | /// </summary> |
||
93 | /// <param name="PROJECT_NO"></param> |
||
94 | /// <param name="DOCUMENT_URL"></param> |
||
95 | /// <param name="DOCUMENT_ID"></param> |
||
96 | /// <returns></returns> |
||
97 | c112c3c3 | taeseongkim | public string CreateConvertDoc(string PROJECT_NO, string DOCUMENT_URL, string DOCUMENT_ID) |
98 | 1a88080d | taeseongkim | { |
99 | string result = null; |
||
100 | try |
||
101 | { |
||
102 | var tran = BeginTransaction(); |
||
103 | |||
104 | var parameters = new DynamicParameters(); |
||
105 | parameters.Add("@project_no", value: PROJECT_NO); |
||
106 | parameters.Add("@document_url", value: DOCUMENT_URL); |
||
107 | parameters.Add("@document_id", value: DOCUMENT_ID); |
||
108 | 098748fa | taeseongkim | parameters.Add("@newid", direction: ParameterDirection.Output,size:int.MaxValue); |
109 | 1a88080d | taeseongkim | |
110 | c112c3c3 | taeseongkim | base.Execute("convert_insert_convertdoc", parameters, transaction: tran, commandType: CommandType.StoredProcedure); |
111 | 098748fa | taeseongkim | |
112 | 1a88080d | taeseongkim | tran.Commit(); |
113 | |||
114 | result = parameters.Get<string>("newid"); |
||
115 | 098748fa | taeseongkim | |
116 | |||
117 | 1a88080d | taeseongkim | } |
118 | catch (Exception ex) |
||
119 | { |
||
120 | |||
121 | throw ex; |
||
122 | } |
||
123 | return result; |
||
124 | } |
||
125 | |||
126 | 098748fa | taeseongkim | public int UpdateStatusAsync(string ServiceID, string ConvertDocID, int status, int totalPage, int currentPage, string exception) |
127 | { |
||
128 | int result = 0; |
||
129 | var tran = BeginTransaction(); |
||
130 | var parameters = new DynamicParameters(); |
||
131 | parameters.Add("@service_id", value: ServiceID); |
||
132 | parameters.Add("@id", value: ConvertDocID); |
||
133 | parameters.Add("@status", value: status); |
||
134 | parameters.Add("@total_page", value: totalPage); |
||
135 | parameters.Add("@current_page", value: currentPage); |
||
136 | parameters.Add("@exception", value: exception); |
||
137 | result = base.Execute("convert_update_status", parameters, transaction: tran, commandType: CommandType.StoredProcedure); |
||
138 | tran.Commit(); |
||
139 | |||
140 | return result; |
||
141 | } |
||
142 | |||
143 | 1a88080d | taeseongkim | /// <summary> |
144 | /// |
||
145 | /// </summary> |
||
146 | /// <param name="documentItem"></param> |
||
147 | /// <returns>Create or Update id</returns> |
||
148 | c112c3c3 | taeseongkim | public string CreateOrUPdateDocItem(DOCUMENTITEM documentItem) |
149 | 1a88080d | taeseongkim | { |
150 | string result = null; |
||
151 | |||
152 | var tran = BeginTransaction(); |
||
153 | var parameter = new DynamicParameters(); |
||
154 | |||
155 | parameter.Add("@revision", documentItem.REVISION); |
||
156 | parameter.Add("@document_no", documentItem.DOCUMENT_NO); |
||
157 | parameter.Add("@document_name", documentItem.DOCUMENT_NAME); |
||
158 | parameter.Add("@original_file", documentItem.ORIGINAL_FILE); |
||
159 | parameter.Add("@document_id", documentItem.DOCUMENT_ID); |
||
160 | parameter.Add("@project_no", documentItem.PROJECT_NO); |
||
161 | parameter.Add("@link", documentItem.Link); |
||
162 | parameter.Add("@result_file", documentItem.RESULT_FILE); |
||
163 | parameter.Add("@result", documentItem.RESULT); |
||
164 | parameter.Add("@group_no", documentItem.GROUP_NO); |
||
165 | 098748fa | taeseongkim | parameter.Add("@newid", direction: ParameterDirection.Output, size: int.MaxValue); |
166 | 1a88080d | taeseongkim | |
167 | c112c3c3 | taeseongkim | base.Execute("convert_insert_documentitem", parameter, tran, commandType: CommandType.StoredProcedure); |
168 | 1a88080d | taeseongkim | |
169 | tran.Commit(); |
||
170 | |||
171 | result = parameter.Get<string>("newid"); |
||
172 | |||
173 | |||
174 | return result; |
||
175 | } |
||
176 | |||
177 | |||
178 | /// <summary> |
||
179 | /// test 필요 transaction Commit 이후 parameter.get을 해야 commit이 된다. |
||
180 | /// </summary> |
||
181 | /// <param name="convertDocID"></param> |
||
182 | /// <param name="PageCount"></param> |
||
183 | /// <returns></returns> |
||
184 | c112c3c3 | taeseongkim | public string CreateDocInfo(string convertDocID, int PageCount) |
185 | 1a88080d | taeseongkim | { |
186 | string result = ""; |
||
187 | var tran = BeginTransaction(); |
||
188 | |||
189 | var parameters = new DynamicParameters(); |
||
190 | parameters.Add("@convert_id", convertDocID, dbType: DbType.String); |
||
191 | parameters.Add("@page_count", PageCount, dbType: DbType.Int32); |
||
192 | parameters.Add("@newid", dbType: DbType.String, direction: ParameterDirection.Output, size: 50); |
||
193 | parameters.Add("@errorcode", dbType: DbType.Int32, direction: ParameterDirection.Output); |
||
194 | parameters.Add("@error", dbType: DbType.String, direction: ParameterDirection.Output, size: 500); |
||
195 | |||
196 | c112c3c3 | taeseongkim | base.Execute("convert_insert_docinfo", parameters, tran, commandType: CommandType.StoredProcedure); |
197 | 1a88080d | taeseongkim | |
198 | var errorCode = parameters.Get<int>("errorcode"); |
||
199 | var error = parameters.Get<string>("error"); |
||
200 | |||
201 | if (errorCode > 0) |
||
202 | { |
||
203 | tran.Rollback(); |
||
204 | throw new Exception(error); |
||
205 | } |
||
206 | else |
||
207 | { |
||
208 | tran.Commit(); |
||
209 | |||
210 | result = parameters.Get<string>("newid"); |
||
211 | } |
||
212 | |||
213 | return result; |
||
214 | } |
||
215 | |||
216 | |||
217 | c112c3c3 | taeseongkim | public bool CreateDocPage(IEnumerable<DocPage> docPages) |
218 | 1a88080d | taeseongkim | { |
219 | bool result = false; |
||
220 | |||
221 | try |
||
222 | { |
||
223 | var tran = BeginTransaction(); |
||
224 | |||
225 | var parameter = new DynamicParameters(); |
||
226 | |||
227 | parameter.AddTable("DOCPAGES", "TYPE_INSERT_DOCPAGE", docPages); |
||
228 | |||
229 | c112c3c3 | taeseongkim | var id = base.Execute("CONVERT_INSERT_DOCPAGE", parameter, tran, commandType: CommandType.StoredProcedure); |
230 | 1a88080d | taeseongkim | |
231 | tran.Commit(); |
||
232 | |||
233 | result = true; |
||
234 | } |
||
235 | catch (Exception ex) |
||
236 | { |
||
237 | throw new Exception("DOCPAGERepository CreateAsync error.", ex); |
||
238 | } |
||
239 | |||
240 | return result; |
||
241 | } |
||
242 | } |
||
243 | 0b008ea6 | taeseongkim | |
244 | internal class VARCHAR_TABLE |
||
245 | { |
||
246 | public string ITEM { get; set; } |
||
247 | } |
||
248 | 1a88080d | taeseongkim | } |