markus / ConvertService / ServiceBase / Markus.Service.DataBase.Dapper / ConvertDatabase.cs @ 9e974b65
이력 | 보기 | 이력해설 | 다운로드 (2.59 KB)
1 | a5e5fff6 | taeseongkim | |
---|---|---|---|
2 | using System; |
||
3 | using System.Collections.Generic; |
||
4 | using System.IO; |
||
5 | using System.Linq; |
||
6 | using System.Text; |
||
7 | using System.Threading.Tasks; |
||
8 | using System.Data.SqlClient; |
||
9 | using Markus.Message; |
||
10 | using Markus.Service.DataBase.Repositories; |
||
11 | |||
12 | namespace Markus.Service.DataBase.Dapper |
||
13 | { |
||
14 | public class ConvertDatabase : IDisposable |
||
15 | { |
||
16 | #region Constructor |
||
17 | |||
18 | public readonly string ConnectionString; |
||
19 | |||
20 | public ConvertDatabase(string connectionString) |
||
21 | { |
||
22 | try |
||
23 | { |
||
24 | ConnectionString = connectionString; |
||
25 | } |
||
26 | catch (Exception ex) |
||
27 | { |
||
28 | System.Diagnostics.Debug.WriteLine(ex.ToString()); |
||
29 | throw ex; |
||
30 | } |
||
31 | } |
||
32 | |||
33 | public void Dispose() |
||
34 | { |
||
35 | } |
||
36 | |||
37 | |||
38 | #endregion |
||
39 | |||
40 | /// <summary> |
||
41 | /// service에서 대기중이거나 오류인 아이템을 가져가서 컨버터 프로세스를 호출한다. |
||
42 | /// 컨버터 상태가 에러이거나 2보다 작은 경우 |
||
43 | /// UniqueKey는 각 데이터베이스의 문서 정보에서 유일한 키이며 컨버터저장에서 같은 폴더로의 저장을 방지 한다. |
||
44 | /// |
||
45 | /// </summary> |
||
46 | /// <param name="aliveItems"></param> |
||
47 | /// <param name="TakeCount"></param> |
||
48 | /// <returns></returns> |
||
49 | public async Task<IEnumerable<DataBase.Entities.ConvertDoc>> GetWaitConvertItemsAsync(int TakeCount) |
||
50 | { |
||
51 | IEnumerable<DataBase.Entities.ConvertDoc> result = null; |
||
52 | |||
53 | using (ConvertDocRepository repository = new ConvertDocRepository(ConnectionString)) |
||
54 | { |
||
55 | result = await repository.GetWaitorErrorAsync(TakeCount); |
||
56 | } |
||
57 | |||
58 | return result; |
||
59 | } |
||
60 | |||
61 | /// <summary> |
||
62 | /// 오류나 wait으로 남아 있는 데이터베이스의 Item을 StatusCodeType.None으로 복구 |
||
63 | /// </summary> |
||
64 | /// <param name="convertID">StatusCodeType을 변경하고자 하는 ConvertItem의 ID</param> |
||
65 | /// <param name="ReConvert">ReConvert가 2이면 다시 Convert를 시도 안하기 때문에 기존 값으로 유지 하고 계속 시도 할수 있도록 0을 주는 경우가 있다.</param> |
||
66 | /// <returns></returns> |
||
67 | /// |
||
68 | public async Task<int> SetCleanUpItemAsync(string convertID, int ReConvert) |
||
69 | { |
||
70 | int result = -1; |
||
71 | |||
72 | using (ConvertDocRepository repository = new ConvertDocRepository(ConnectionString)) |
||
73 | { |
||
74 | result = await repository.SetCleanUpItemAsync(convertID, ReConvert); |
||
75 | } |
||
76 | |||
77 | return result; |
||
78 | } |
||
79 | |||
80 | } |
||
81 | } |