프로젝트

일반

사용자정보

통계
| 개정판:

hytos / ID2.Manager / ID2.Manager.Dapper / Repository / MarkusRepository.cs @ 72676337

이력 | 보기 | 이력해설 | 다운로드 (13.6 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 c112c3c3 taeseongkim
                var documentItemID = CreateOrUPdateDocItem(
27 1a88080d taeseongkim
                    new DOCUMENTITEM
28
                    {
29
                        REVISION = "0",
30
                        PROJECT_NO = ProjectNo,
31
                        DOCUMENT_NO = Name,
32
                        GROUP_NO = Name,
33
                        DOCUMENT_NAME = Name,
34
                        ORIGINAL_FILE = Name,
35
                        DOCUMENT_ID = Name
36
                    });
37
38 d1d8c5ea taeseongkim
                if (documentItemID != null)
39 1a88080d taeseongkim
                {
40
                    result = true;
41
                }
42
            }
43
44
            return result;
45
        }
46
47 5b086e44 taeseongkim
        public bool InsertOrUpdateUsers(MEMBER member)
48 7298c115 taeseongkim
        {
49
            bool result = false;
50
51
            try
52
            {
53 5b086e44 taeseongkim
                var oMember = GetMEMBER(member.ID);
54 7298c115 taeseongkim
55 5b086e44 taeseongkim
                if(oMember?.Count() > 0)
56
                {
57
                    var tran = BeginTransaction();
58
59
                    string SQL = "UPDATE MEMBER" +
60
                        " SET " +
61
                        "DEPARTMENT = @DEPARTMENT" +
62
                        ",NAME = @NAME" +
63
                        ",POSITION = @POSITION" +
64
                        ",EMAIL_ADDRESS = @EMAIL_ADDRESS" +
65
                        ",PASSWORD = @PASSWORD" +
66
                        ",COMPANY = @COMPANY" +
67
                        ",CREATE_DATETIME = @CREATE_DATETIME" +
68
                        ",MODIFIED_DATETIME = @MODIFIED_DATETIME" +
69
                        ",ISLICENSE = @ISLICENSE" +
70 99c0623d yoush97
                        " WHERE ID = @ID";
71 5b086e44 taeseongkim
72
73
                    var parameters = new DynamicParameters();
74
                    parameters.Add("@ID", member.ID);
75
                    parameters.Add("@DEPARTMENT", member.DEPARTMENT);
76
                    parameters.Add("@NAME", member.NAME);
77
                    parameters.Add("@POSITION", member.POSITION);
78
                    parameters.Add("@EMAIL_ADDRESS", member.EMAIL_ADDRESS);
79
                    parameters.Add("@PASSWORD", member.PASSWORD);
80
                    parameters.Add("@COMPANY", member.COMPANY);
81
                    parameters.Add("@CREATE_DATETIME", member.CREATE_DATETIME);
82
                    parameters.Add("@MODIFIED_DATETIME", member.MODIFIED_DATETIME);
83
                    parameters.Add("@ISLICENSE", member.ISLICENSE);
84
85
                    var rowsAffected = base.Execute(SQL, parameters, tran);
86
87
88
                    if (rowsAffected < 0)
89
                    {
90
                        result = false;
91
                    }
92
                    else
93
                    {
94
                        tran.Commit();
95
                    }
96
                }
97
                else
98
                {
99
                    var tran = BeginTransaction();
100
101
                    string SQL = "INSERT INTO MEMBER (ID,DEPARTMENT,NAME,POSITION,EMAIL_ADDRESS,PASSWORD,COMPANY,CREATE_DATETIME,MODIFIED_DATETIME,ISLICENSE) " +
102
                        "VALUES (@ID,@DEPARTMENT,@NAME,@POSITION,@EMAIL_ADDRESS,@PASSWORD,@COMPANY,@CREATE_DATETIME,@MODIFIED_DATETIME,@ISLICENSE)";
103
104
105
                    var parameters = new DynamicParameters();
106
                    parameters.Add("@ID", member.ID);
107
                    parameters.Add("@DEPARTMENT", member.DEPARTMENT);
108
                    parameters.Add("@NAME", member.NAME);
109
                    parameters.Add("@POSITION", member.POSITION);
110
                    parameters.Add("@EMAIL_ADDRESS", member.EMAIL_ADDRESS);
111
                    parameters.Add("@PASSWORD", member.PASSWORD);
112
                    parameters.Add("@COMPANY", member.COMPANY);
113
                    parameters.Add("@CREATE_DATETIME", member.CREATE_DATETIME);
114
                    parameters.Add("@MODIFIED_DATETIME", member.MODIFIED_DATETIME);
115
                    parameters.Add("@ISLICENSE", member.ISLICENSE);
116
117
                    var rowsAffected = base.Execute(SQL, parameters, tran);
118
119
120
                    if(rowsAffected < 0)
121
                    {
122
                        result = false;
123
                    }
124
                    else
125
                    {
126
                        tran.Commit();
127
                    }
128
                }
129 7298c115 taeseongkim
            }
130
            catch (Exception ex)
131
            {
132 5b086e44 taeseongkim
                throw new Exception($"userId : {member.ID}",ex);
133 7298c115 taeseongkim
            }
134 753a1c26 taeseongkim
135
            return result;
136
        }
137
138
        public bool InsertProperties(string ProjectNo)
139
        {
140
            bool result = false;
141
142
            try
143
            {
144
                var properties = new[] { "TileSorceStorage", "TileSorcePath" };
145
146
                foreach (var property in properties)
147
                {
148
                    var tran = BeginTransaction();
149
150
                    string SQL = "INSERT INTO [dbo].[PROPERTIES] ([TYPE], [PROPERTY], [VALUE])" +
151
                                " SELECT @TYPE,@ProjectNo, [VALUE]" +
152
                                " FROM [dbo].[PROPERTIES]" +
153
                                " WHERE [TYPE] = @TYPE AND [PROPERTY] = 'APAO'" +
154
                                " AND NOT EXISTS (" +
155
                                " SELECT 1" +
156
                                " FROM [dbo].[PROPERTIES]" +
157
                                "  WHERE [TYPE] =  @TYPE AND [PROPERTY] = @ProjectNo)";
158
159
                    var parameters = new DynamicParameters();
160
                    parameters.Add("@TYPE", property);
161
                    parameters.Add("@ProjectNo", ProjectNo);
162
163
                    var rowsAffected = base.Execute(SQL, parameters, tran);
164
165
                    tran.Commit();
166
                }
167
            }
168
            catch (Exception ex)
169
            {
170
                throw new Exception($"InsertProperties : {ProjectNo}", ex);
171
            }
172 7298c115 taeseongkim
173
            return result;
174
        }
175
176 5b086e44 taeseongkim
        public IEnumerable<MEMBER> GetMEMBER(string id)
177
        {
178
            string SQL = "SELECT * FROM MEMBER WHERE ID = @ID";
179
180
            var parameters = new DynamicParameters();
181
            parameters.Add("@ID", id);
182
183
            return base.Query<MEMBER>(SQL, parameters);
184
        }
185
186 d1d8c5ea taeseongkim
        public IEnumerable<ConvertDoc> GetConvertDoc(int status,string ProjectNo)
187
        {
188
            string SQL = "SELECT * FROM CONVERTER_DOC WHERE STATUS = @STATUS and PROJECT_NO = @PROJECT_NO";
189
190
            var parameters = new DynamicParameters();
191
            parameters.Add("@STATUS", status);
192
            parameters.Add("@PROJECT_NO", ProjectNo);
193
194
            var convertItems = base.Query<ConvertDoc>(SQL, parameters);
195
196
            return convertItems;
197
        }
198
199 45322477 taeseongkim
        public int GetConvertDoc(string ProjectNo,string DOCUMENT_ID)
200
        {
201
            string SQL = "SELECT STATUS FROM CONVERTER_DOC WHERE PROJECT_NO = @PROJECT_NO and DOCUMENT_ID = @DOCUMENT_ID";
202
203
            var parameters = new DynamicParameters();
204
            parameters.Add("@PROJECT_NO", ProjectNo);
205
            parameters.Add("@DOCUMENT_ID", DOCUMENT_ID);
206
207
            return base.ExecuteScalar<int>(SQL, parameters);
208
        }
209
210 c7f3eb42 taeseongkim
        //public IEnumerable<MarkupText> GetMarkupText(IEnumerable<string> ProjectNoList, IEnumerable<string> DocumentNoList)
211
        //{
212
        //    string SQL = "GET_MARKUPDATA";
213 0b008ea6 taeseongkim
214 c7f3eb42 taeseongkim
        //    var parameters = new DynamicParameters();
215
        //    parameters.AddTable("@PROJECT_NOs", "VARCHAR_TABLE", ProjectNoList.Select(x=>new VARCHAR_TABLE { ITEM = x }));
216
        //    parameters.AddTable("@DOCUMENT_IDs", "VARCHAR_TABLE", DocumentNoList.Select(x => new VARCHAR_TABLE { ITEM = x }));
217 0b008ea6 taeseongkim
218 c7f3eb42 taeseongkim
        //    var Items = base.Query<MarkupText>(SQL, parameters,commandType:CommandType.StoredProcedure);
219 0b008ea6 taeseongkim
220 c7f3eb42 taeseongkim
        //    return Items;
221
        //}
222 0b008ea6 taeseongkim
223 1a88080d taeseongkim
        /// <summary>
224
        /// 완료
225
        /// </summary>
226
        /// <param name="PROJECT_NO"></param>
227
        /// <param name="DOCUMENT_URL"></param>
228
        /// <param name="DOCUMENT_ID"></param>
229
        /// <returns></returns>
230 c112c3c3 taeseongkim
        public string CreateConvertDoc(string PROJECT_NO, string DOCUMENT_URL, string DOCUMENT_ID)
231 1a88080d taeseongkim
        {
232
            string result = null;
233
            try
234
            {
235
                var tran = BeginTransaction();
236
237
                var parameters = new DynamicParameters();
238
                parameters.Add("@project_no", value: PROJECT_NO);
239
                parameters.Add("@document_url", value: DOCUMENT_URL);
240
                parameters.Add("@document_id", value: DOCUMENT_ID);
241 098748fa taeseongkim
                parameters.Add("@newid", direction: ParameterDirection.Output,size:int.MaxValue);
242 1a88080d taeseongkim
243 c112c3c3 taeseongkim
                base.Execute("convert_insert_convertdoc", parameters, transaction: tran, commandType: CommandType.StoredProcedure);
244 098748fa taeseongkim
                
245 1a88080d taeseongkim
                tran.Commit();
246
247
                result = parameters.Get<string>("newid");
248 098748fa taeseongkim
249
250 1a88080d taeseongkim
            }
251
            catch (Exception ex)
252
            {
253
                throw ex;
254
            }
255
            return result;
256
        }
257
258 098748fa taeseongkim
        public int UpdateStatusAsync(string ServiceID, string ConvertDocID, int status, int totalPage, int currentPage, string exception)
259
        {
260
            int result = 0;
261
            var tran = BeginTransaction();
262
            var parameters = new DynamicParameters();
263
            parameters.Add("@service_id", value: ServiceID);
264
            parameters.Add("@id", value: ConvertDocID);
265
            parameters.Add("@status", value: status);
266
            parameters.Add("@total_page", value: totalPage);
267
            parameters.Add("@current_page", value: currentPage);
268
            parameters.Add("@exception", value: exception);
269
            result = base.Execute("convert_update_status", parameters, transaction: tran, commandType: CommandType.StoredProcedure);
270
            tran.Commit();
271
272
            return result;
273
        }
274
275 1a88080d taeseongkim
        /// <summary>
276
        /// 
277
        /// </summary>
278
        /// <param name="documentItem"></param>
279
        /// <returns>Create or Update id</returns>
280 c112c3c3 taeseongkim
        public string CreateOrUPdateDocItem(DOCUMENTITEM documentItem)
281 1a88080d taeseongkim
        {
282
            string result = null;
283
284
            var tran = BeginTransaction();
285
            var parameter = new DynamicParameters();
286
287
            parameter.Add("@revision", documentItem.REVISION);
288
            parameter.Add("@document_no", documentItem.DOCUMENT_NO);
289
            parameter.Add("@document_name", documentItem.DOCUMENT_NAME);
290
            parameter.Add("@original_file", documentItem.ORIGINAL_FILE);
291
            parameter.Add("@document_id", documentItem.DOCUMENT_ID);
292
            parameter.Add("@project_no", documentItem.PROJECT_NO);
293
            parameter.Add("@link", documentItem.Link);
294
            parameter.Add("@result_file", documentItem.RESULT_FILE);
295
            parameter.Add("@result", documentItem.RESULT);
296
            parameter.Add("@group_no", documentItem.GROUP_NO);
297 098748fa taeseongkim
            parameter.Add("@newid", direction: ParameterDirection.Output, size: int.MaxValue);
298 1a88080d taeseongkim
299 c112c3c3 taeseongkim
            base.Execute("convert_insert_documentitem", parameter, tran, commandType: CommandType.StoredProcedure);
300 1a88080d taeseongkim
301
            tran.Commit();
302
303
            result = parameter.Get<string>("newid");
304
305
306
            return result;
307
        }
308
309
310
        /// <summary>
311
        /// test 필요 transaction Commit 이후 parameter.get을 해야 commit이 된다.
312
        /// </summary>
313
        /// <param name="convertDocID"></param>
314
        /// <param name="PageCount"></param>
315
        /// <returns></returns>
316 c112c3c3 taeseongkim
        public string CreateDocInfo(string convertDocID, int PageCount)
317 1a88080d taeseongkim
        {
318
            string result = "";
319
            var tran = BeginTransaction();
320
321
            var parameters = new DynamicParameters();
322
            parameters.Add("@convert_id", convertDocID, dbType: DbType.String);
323
            parameters.Add("@page_count", PageCount, dbType: DbType.Int32);
324
            parameters.Add("@newid", dbType: DbType.String, direction: ParameterDirection.Output, size: 50);
325
            parameters.Add("@errorcode", dbType: DbType.Int32, direction: ParameterDirection.Output);
326
            parameters.Add("@error", dbType: DbType.String, direction: ParameterDirection.Output, size: 500);
327
328 c112c3c3 taeseongkim
            base.Execute("convert_insert_docinfo", parameters, tran, commandType: CommandType.StoredProcedure);
329 1a88080d taeseongkim
330
            var errorCode = parameters.Get<int>("errorcode");
331
            var error = parameters.Get<string>("error");
332
333
            if (errorCode > 0)
334
            {
335
                tran.Rollback();
336
                throw new Exception(error);
337
            }
338
            else
339
            {
340
                tran.Commit();
341
342
                result = parameters.Get<string>("newid");
343
            }
344
345
            return result;
346
        }
347
348
349 c112c3c3 taeseongkim
        public bool CreateDocPage(IEnumerable<DocPage> docPages)
350 1a88080d taeseongkim
        {
351
            bool result = false;
352
353
            try
354
            {
355
                var tran = BeginTransaction();
356
357
                var parameter = new DynamicParameters();
358
359 c7f3eb42 taeseongkim
                parameter.AddTable< DocPage>("DOCPAGES", "TYPE_INSERT_DOCPAGE", docPages.ToList());
360 1a88080d taeseongkim
361 c112c3c3 taeseongkim
                var id = base.Execute("CONVERT_INSERT_DOCPAGE", parameter, tran, commandType: CommandType.StoredProcedure);
362 1a88080d taeseongkim
363
                tran.Commit();
364
365
                result = true;
366
            }
367
            catch (Exception ex)
368
            {
369
                throw new Exception("DOCPAGERepository CreateAsync error.", ex);
370
            }
371
372
            return result;
373
        }
374
    }
375 0b008ea6 taeseongkim
376
    internal class VARCHAR_TABLE
377
    {
378
        public string ITEM { get; set; }
379
    }
380 1a88080d taeseongkim
}
클립보드 이미지 추가 (최대 크기: 500 MB)