개정판 0a64fa85
issue #0000 convert service Dapper update
Change-Id: I02cd47be3839ceff08813bd022cb8e13cf534ba0
ConvertService/ServiceBase/Markus.Service.Convert/ConvertService.cs | ||
---|---|---|
154 | 154 |
#if PROCESS_TEST |
155 | 155 |
Console.WriteLine($"send wcf service {e.SaveItem.Status} currentPage : {e.SaveItem.CurrentPage} error message : {(string.IsNullOrWhiteSpace(e.SaveItem.ErrorMessage)?"null":e.SaveItem.ErrorMessage)}"); |
156 | 156 |
#endif |
157 |
StationServiceClient.ConvertProcessState(e.SaveItem.Id, (int)e.SaveItem.Status, e.SaveItem.CurrentPage, e.SaveItem.TotalPages, e.SaveItem.ErrorMessage);
|
|
157 |
StationServiceClient.ConvertProcessState(ConvertProcessContext.ConvertID, (int)e.SaveItem.Status, e.SaveItem.CurrentPage, e.SaveItem.TotalPages, e.SaveItem.ErrorMessage);
|
|
158 | 158 |
|
159 | 159 |
} |
160 | 160 |
catch (Exception ex) |
... | ... | |
369 | 369 |
|
370 | 370 |
try |
371 | 371 |
{ |
372 |
string docinfoID = null; |
|
373 |
|
|
372 | 374 |
using (DOCINFORepository dOCINFORepository = new DOCINFORepository(ConvertProcessContext.ConnectionString)) |
373 | 375 |
{ |
374 |
var docinfoId = dOCINFORepository.CreateAsync(convertDocID: saveitem.Id, PageCount: result.PageInfoList.Count()).GetAwaiter().GetResult(); |
|
376 |
docinfoID = dOCINFORepository.CreateAsync(convertDocID: saveitem.Id, PageCount: result.PageInfoList.Count()).GetAwaiter().GetResult(); |
|
377 |
} |
|
375 | 378 |
|
379 |
if (docinfoID != null) |
|
380 |
{ |
|
376 | 381 |
using (DOCPAGERepository database = new DOCPAGERepository(ConvertProcessContext.ConnectionString)) |
377 | 382 |
{ |
378 | 383 |
var docPageList = result.PageInfoList.Select(f => new DOCPAGE |
379 | 384 |
{ |
380 |
DOCINFO_ID = docinfoId,
|
|
385 |
DOCINFO_ID = docinfoID,
|
|
381 | 386 |
PAGE_ANGLE = 0, |
382 | 387 |
PAGE_WIDTH = f.Width.ToString(), |
383 | 388 |
PAGE_HEIGHT = f.Height.ToString(), |
... | ... | |
386 | 391 |
|
387 | 392 |
docSetResult = database.CreateAsync(docPageList).GetAwaiter().GetResult(); |
388 | 393 |
} |
389 |
} |
|
390 |
|
|
391 |
saveitem.CurrentPage = result.PageInfoList.Max(x => x.PageNo); |
|
392 | 394 |
|
395 |
saveitem.CurrentPage = result.PageInfoList.Max(x => x.PageNo); |
|
396 |
} |
|
397 |
else |
|
398 |
{ |
|
399 |
result.StatusCode = StatusCodeType.Error; |
|
400 |
result.Message += LogHelper.GetStack() + " " + $"DocInfo Insert Error."; |
|
401 |
} |
|
393 | 402 |
} |
394 | 403 |
catch (Exception ex) |
395 | 404 |
{ |
ConvertService/ServiceBase/Markus.Service.ConvertProcess/Markus.Service.ConvertProcess.csproj | ||
---|---|---|
14 | 14 |
<NuGetPackageImportStamp> |
15 | 15 |
</NuGetPackageImportStamp> |
16 | 16 |
<TargetFrameworkProfile /> |
17 |
<IsWebBootstrapper>false</IsWebBootstrapper> |
|
17 | 18 |
<PublishUrl>게시\</PublishUrl> |
18 | 19 |
<Install>true</Install> |
19 | 20 |
<InstallFrom>Disk</InstallFrom> |
... | ... | |
26 | 27 |
<MapFileExtensions>true</MapFileExtensions> |
27 | 28 |
<ApplicationRevision>0</ApplicationRevision> |
28 | 29 |
<ApplicationVersion>1.0.0.%2a</ApplicationVersion> |
29 |
<IsWebBootstrapper>false</IsWebBootstrapper> |
|
30 | 30 |
<UseApplicationTrust>false</UseApplicationTrust> |
31 | 31 |
<BootstrapperEnabled>true</BootstrapperEnabled> |
32 | 32 |
</PropertyGroup> |
... | ... | |
229 | 229 |
)</PreBuildEvent> |
230 | 230 |
</PropertyGroup> |
231 | 231 |
<PropertyGroup> |
232 |
<PostBuildEvent>rem "$(Obfuscar)" obfuscar.xml</PostBuildEvent> |
|
232 |
<PostBuildEvent>if $(ConfigurationName) == ReleaseAll ( |
|
233 |
"$(Obfuscar)" obfuscar.xml |
|
234 |
)</PostBuildEvent> |
|
233 | 235 |
</PropertyGroup> |
234 | 236 |
</Project> |
ConvertService/ServiceBase/Markus.Service.ConvertProcess/obfuscar.xml | ||
---|---|---|
6 | 6 |
<Module file="$(InPath)\Markus.Service.ConvertProcess.exe" /> |
7 | 7 |
<Module file="$(InPath)\Markus.Service.Extensions.dll" /> |
8 | 8 |
<Module file="$(InPath)\Markus.Service.Convert.dll" /> |
9 |
<Module file="$(InPath)\Markus.Service.DataBase.dll" /> |
|
10 | 9 |
</Obfuscator> |
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Entities/ConvertDoc.cs | ||
---|---|---|
9 | 9 |
[DataContract] |
10 | 10 |
public class ConvertDoc |
11 | 11 |
{ |
12 |
public ConvertDoc() |
|
13 |
{ |
|
14 |
|
|
15 |
} |
|
16 |
|
|
17 |
public ConvertDoc(string id, string project_no, string document_url, string document_id, DateTime create_datetime |
|
18 |
, int status, int total_page, int current_page, int reconverter, string exception, DateTime end_datetime |
|
19 |
, DateTime start_datetime, string service_id) |
|
20 |
{ |
|
21 |
this.ID = id; |
|
22 |
this.PROJECT_NO = project_no; |
|
23 |
this.DOCUMENT_URL = document_url; |
|
24 |
this.DOCUMENT_ID = document_id; |
|
25 |
this.CREATE_DATETIME = create_datetime; |
|
26 |
this.STATUS = status; |
|
27 |
this.TOTAL_PAGE = total_page; |
|
28 |
this.CURRENT_PAGE = current_page; |
|
29 |
this.RECONVERTER = reconverter; |
|
30 |
this.EXCEPTION = exception; |
|
31 |
this.END_DATETIME = end_datetime; |
|
32 |
this.START_DATETIME = start_datetime; |
|
33 |
this.SERVICE_ID = service_id; |
|
34 |
} |
|
35 |
|
|
12 | 36 |
[Key] |
13 | 37 |
[MaxLength(50)] |
14 | 38 |
[DataMember] |
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Markus.Service.DataBase.Dapper.csproj | ||
---|---|---|
65 | 65 |
<LangVersion>7.3</LangVersion> |
66 | 66 |
<ErrorReport>prompt</ErrorReport> |
67 | 67 |
</PropertyGroup> |
68 |
<PropertyGroup> |
|
69 |
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
|
70 |
</PropertyGroup> |
|
68 | 71 |
<ItemGroup> |
69 | 72 |
<Reference Include="System" /> |
70 | 73 |
<Reference Include="System.ComponentModel.DataAnnotations" /> |
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Repositories/BaseRepository.cs | ||
---|---|---|
73 | 73 |
var parameter = new DynamicParameters(); |
74 | 74 |
parameters.ForEach(x => parameter.Add(x.Name, x.Value, x.DbType)); |
75 | 75 |
|
76 |
return await Connection.QueryFirstAsync<T>(SQL, parameter); |
|
76 |
return await Connection.QueryFirstOrDefaultAsync<T>(SQL, parameter);
|
|
77 | 77 |
} |
78 | 78 |
|
79 | 79 |
public async Task<int> SetAsync(string SQL, List<sqlParameter> parameters) |
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Repositories/ConvertDocRepository.cs | ||
---|---|---|
69 | 69 |
|
70 | 70 |
SQL = SQL + string.Join(" AND ", whereSQL.ToArray()); |
71 | 71 |
|
72 |
var convertItem = await Connection.QueryFirstAsync<Markus.Service.DataBase.Entities.ConvertDoc>(SQL, parameters); |
|
72 |
var convertItem = await Connection.QueryFirstOrDefaultAsync<Markus.Service.DataBase.Entities.ConvertDoc>(SQL, parameters);
|
|
73 | 73 |
|
74 |
using (PROPERTIESRepository repository = new PROPERTIESRepository(connectionString)) |
|
75 |
{ |
|
76 |
var propeties = await repository.GetFirstAsync(convertItem.PROJECT_NO, PropertiesTypeDefine.TILE_SOURCE_STORAGE); |
|
77 |
|
|
78 |
if (propeties != null) |
|
79 |
{ |
|
80 |
convertItem.ConvertPath = CreateConvertPath.Get(propeties.VALUE, convertItem.PROJECT_NO, convertItem.DOCUMENT_ID); |
|
81 |
} |
|
82 |
else |
|
83 |
{ |
|
84 |
throw new Exception($"Get {convertItem.PROJECT_NO} is {PropertiesTypeDefine.TILE_SOURCE_STORAGE} null Error"); |
|
85 |
} |
|
86 |
} |
|
74 |
if (convertItem != null) |
|
75 |
{ |
|
76 |
using (PROPERTIESRepository repository = new PROPERTIESRepository(connectionString)) |
|
77 |
{ |
|
78 |
var propeties = await repository.GetFirstAsync(convertItem.PROJECT_NO, PropertiesTypeDefine.TILE_SOURCE_STORAGE); |
|
79 |
|
|
80 |
if (propeties != null) |
|
81 |
{ |
|
82 |
convertItem.ConvertPath = CreateConvertPath.Get(propeties.VALUE, convertItem.PROJECT_NO, convertItem.DOCUMENT_ID); |
|
83 |
} |
|
84 |
else |
|
85 |
{ |
|
86 |
throw new Exception($"Get {convertItem.PROJECT_NO} is {PropertiesTypeDefine.TILE_SOURCE_STORAGE} null Error"); |
|
87 |
} |
|
88 |
} |
|
89 |
} |
|
87 | 90 |
|
88 | 91 |
return convertItem; |
89 | 92 |
|
... | ... | |
167 | 170 |
public async Task<string> CreateAsync(string PROJECT_NO,string DOCUMENT_URL,string DOCUMENT_ID) |
168 | 171 |
{ |
169 | 172 |
string result = null; |
170 |
|
|
171 |
var parameters = new DynamicParameters(); |
|
172 |
//parameters.Add("@ID", ID, DbType.String); |
|
173 |
parameters.Add("@PROJECT_NO", PROJECT_NO, DbType.String); |
|
174 |
parameters.Add("@DOCUMENT_URL", DOCUMENT_URL, DbType.String); |
|
175 |
parameters.Add("@DOCUMENT_ID", DOCUMENT_ID, DbType.String); |
|
173 |
try |
|
174 |
{ |
|
175 |
var tran = Connection.BeginTransaction(); |
|
176 | 176 |
|
177 |
result = await Connection.QuerySingleAsync<string>("dbo.CONVERT_INSERT_CONVERTDOC", parameters, commandType: CommandType.StoredProcedure); |
|
177 |
var parameters = new DynamicParameters(); |
|
178 |
parameters.Add("@PROJECT_NO", PROJECT_NO, DbType.String); |
|
179 |
parameters.Add("@DOCUMENT_URL", DOCUMENT_URL, DbType.String); |
|
180 |
parameters.Add("@DOCUMENT_ID", DOCUMENT_ID, DbType.String); |
|
181 |
parameters.Add("@NewID", dbType: DbType.String, direction: ParameterDirection.Output,size:50); |
|
182 |
|
|
183 |
await Connection.ExecuteAsync("dbo.CONVERT_INSERT_CONVERTDOC", parameters,transaction: tran, commandType: CommandType.StoredProcedure); |
|
184 |
|
|
185 |
result = parameters.Get<string>("@NewID"); |
|
186 |
tran.Commit(); |
|
187 |
} |
|
188 |
catch (Exception) |
|
189 |
{ |
|
178 | 190 |
|
191 |
throw; |
|
192 |
} |
|
179 | 193 |
return result; |
180 | 194 |
} |
181 | 195 |
|
182 | 196 |
public async Task<int> UpdateStatusAsync(string ServiceID, string ConvertDocID, int status,int totalPage,int currentPage,string exception) |
183 | 197 |
{ |
184 | 198 |
int result = 0; |
199 |
|
|
200 |
var tran = Connection.BeginTransaction(); |
|
185 | 201 |
|
186 | 202 |
var parameters = new DynamicParameters(); |
187 | 203 |
parameters.Add("@SERVICE_ID", ServiceID, DbType.String); |
... | ... | |
191 | 207 |
parameters.Add("@CURRENT_PAGE", currentPage, DbType.Int32); |
192 | 208 |
parameters.Add("@EXCEPTION", exception, DbType.String); |
193 | 209 |
|
194 |
result = await Connection.ExecuteAsync("dbo.CONVERT_UPDATE_STATUS", parameters, commandType: CommandType.StoredProcedure); |
|
195 |
|
|
210 |
result = await Connection.ExecuteAsync("dbo.CONVERT_UPDATE_STATUS", parameters, transaction: tran, commandType: CommandType.StoredProcedure);
|
|
211 |
tran.Commit(); |
|
196 | 212 |
return result; |
197 | 213 |
} |
198 | 214 |
|
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Repositories/DOCINFORepository.cs | ||
---|---|---|
27 | 27 |
var tran = Connection.BeginTransaction(); |
28 | 28 |
|
29 | 29 |
var parameters = new DynamicParameters(); |
30 |
parameters.Add("@CONVERTDOC_ID", convertDocID, DbType.String);
|
|
30 |
parameters.Add("@CONVERT_ID", convertDocID, DbType.String); |
|
31 | 31 |
parameters.Add("@PAGE_COUNT", PageCount, DbType.Int32); |
32 |
parameters.Add("@NewID", dbType: DbType.String, direction: ParameterDirection.Output, size: 50); |
|
33 |
parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output); |
|
34 |
parameters.Add("@Error", dbType: DbType.String, direction: ParameterDirection.Output, size: 500); |
|
32 | 35 |
|
33 |
result = await Connection.QuerySingleAsync<string>("dbo.CONVERT_INSERT_DOCINFO", parameters, tran, commandType: CommandType.StoredProcedure); |
|
34 |
tran.Commit(); |
|
36 |
await Connection.ExecuteAsync("dbo.CONVERT_INSERT_DOCINFO", parameters, tran, commandType: CommandType.StoredProcedure); |
|
37 |
|
|
38 |
var errorCode = parameters.Get<int>("@ErrorCode"); |
|
39 |
var error = parameters.Get<string>("@Error"); |
|
35 | 40 |
|
41 |
if (errorCode > 0) |
|
42 |
{ |
|
43 |
tran.Rollback(); |
|
44 |
throw new Exception(error); |
|
45 |
} |
|
46 |
else |
|
47 |
{ |
|
48 |
result = parameters.Get<string>("@NewID"); |
|
49 |
tran.Commit(); |
|
50 |
} |
|
51 |
|
|
36 | 52 |
return result; |
37 | 53 |
} |
38 |
|
|
39 |
|
|
40 | 54 |
} |
41 | 55 |
} |
42 | 56 |
|
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Repositories/DOCUMENTITEMRepository.cs | ||
---|---|---|
30 | 30 |
parameter.Add("@PROJECT_NO", projectNo, System.Data.DbType.String); |
31 | 31 |
parameter.Add("@DOCUMENT_ID", documentID, System.Data.DbType.String); |
32 | 32 |
|
33 |
return await Connection.QueryFirstAsync<DOCUMENTITEM>(SQL,parameter); |
|
33 |
return await Connection.QueryFirstOrDefaultAsync<DOCUMENTITEM>(SQL,parameter);
|
|
34 | 34 |
} |
35 | 35 |
|
36 | 36 |
/// <summary> |
... | ... | |
55 | 55 |
parameter.Add("@RESULT_FILE", documentItem.RESULT_FILE, DbType.String); |
56 | 56 |
parameter.Add("@RESULT", documentItem.RESULT, DbType.String); |
57 | 57 |
parameter.Add("@GROUP_NO", documentItem.GROUP_NO, DbType.String); |
58 |
parameter.Add("@NewID", dbType: DbType.String, direction: ParameterDirection.Output, size: 50); |
|
58 | 59 |
|
59 |
result = await Connection.QuerySingleAsync<string>("dbo.CONVERT_INSERT_DOCUMENTITEM", parameter, tran, commandType: CommandType.StoredProcedure); |
|
60 |
await Connection.ExecuteAsync("dbo.CONVERT_INSERT_DOCUMENTITEM", parameter, tran, commandType: CommandType.StoredProcedure); |
|
61 |
|
|
62 |
result = parameter.Get<string>("@NewID"); |
|
60 | 63 |
|
61 | 64 |
tran.Commit(); |
62 | 65 |
|
ConvertService/ServiceBase/Markus.Service.DataBase.Dapper/Repositories/PROPERTIESRepository.cs | ||
---|---|---|
44 | 44 |
parameters.Add("@PROPERTY", PROPERTY, System.Data.DbType.String); |
45 | 45 |
parameters.Add("@TYPE", TYPE, System.Data.DbType.String); |
46 | 46 |
|
47 |
return await Connection.QueryFirstAsync<PROPERTIES>(SQL, parameters); |
|
47 |
return await Connection.QueryFirstOrDefaultAsync<PROPERTIES>(SQL, parameters);
|
|
48 | 48 |
} |
49 | 49 |
} |
50 | 50 |
} |
ConvertService/ServiceBase/Markus.Service.Station/Markus.Service.Station.csproj | ||
---|---|---|
115 | 115 |
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> |
116 | 116 |
<Prefer32Bit>true</Prefer32Bit> |
117 | 117 |
</PropertyGroup> |
118 |
<PropertyGroup> |
|
119 |
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
|
120 |
</PropertyGroup> |
|
118 | 121 |
<ItemGroup> |
119 | 122 |
<Reference Include="System" /> |
120 | 123 |
<Reference Include="System.Activities" /> |
... | ... | |
130 | 133 |
<Reference Include="System.Xaml" /> |
131 | 134 |
<Reference Include="System.Xml.Linq" /> |
132 | 135 |
<Reference Include="System.Data.DataSetExtensions" /> |
133 |
<Reference Include="Microsoft.CSharp" /> |
|
134 | 136 |
<Reference Include="System.Data" /> |
135 | 137 |
<Reference Include="System.Net.Http" /> |
136 | 138 |
<Reference Include="System.ServiceProcess" /> |
... | ... | |
270 | 272 |
)</PreBuildEvent> |
271 | 273 |
</PropertyGroup> |
272 | 274 |
<PropertyGroup> |
273 |
<PostBuildEvent>"$(Obfuscar)" obfuscar.xml</PostBuildEvent> |
|
275 |
<PostBuildEvent>if $(ConfigurationName) == ReleaseAll ( |
|
276 |
"$(Obfuscar)" obfuscar.xml |
|
277 |
)</PostBuildEvent> |
|
274 | 278 |
</PropertyGroup> |
275 | 279 |
</Project> |
ConvertService/ServiceBase/Markus.Service.Station/Plugin.ini | ||
---|---|---|
13 | 13 |
|
14 | 14 |
[ErrorNotice] |
15 | 15 |
MARKUS_ConnectionString = ScTg8MgTdbARVQXhb1K9YI3/6emjnMuODvTWZ+UnUZQ8z/Gv4TksSLRn84HTZiC5q/RkHKkgbsc6TL5EdTsnSwK0ngDgXD0P0yPKObgtPfk0MX0wmEG95SDQzGzbT6sH73Lkzde0AeChQWveAWZGvACoQISpdUwNj96c2AQuTqaUHwSkCwSI84HZCYugjlg3gAF1FpPggKCIeu4r/qFi0w== |
16 |
NoticeStatus = 4,50,55,60,70,77,99
|
|
16 |
NoticeStatus = 50,55,60,70,77,99 |
|
17 | 17 |
SMTP_SERVER = outbound.daouoffice.com |
18 | 18 |
SMTP_SERVER_PORT = 25 |
19 | 19 |
IS_SMTP_SERVER_SSL = true |
ConvertService/ServiceBase/Markus.Service.Station/ServiceStation.cs | ||
---|---|---|
7 | 7 |
using Markus.Service.WcfService; |
8 | 8 |
using Salaros.Configuration; |
9 | 9 |
using System; |
10 |
using System.Collections; |
|
10 | 11 |
using System.Collections.Generic; |
11 | 12 |
using System.ComponentModel; |
12 | 13 |
using System.Data; |
... | ... | |
63 | 64 |
/// 프로세스 카운터 자주 람다식을 사용해서 list<int>로 함. |
64 | 65 |
/// </summary> |
65 | 66 |
private List<Int64> ProcessorAffinityList; |
67 |
private Int64 DefaultAffinity; |
|
66 | 68 |
|
67 | 69 |
private string configFileName; |
68 | 70 |
|
... | ... | |
268 | 270 |
int processCount = Environment.ProcessorCount; |
269 | 271 |
int AffinityScope = processCount; |
270 | 272 |
|
271 |
if (processCount > ServiceProperty.PROCESS_COUNT) |
|
272 |
{ |
|
273 |
AffinityScope = processCount / ServiceProperty.PROCESS_COUNT; |
|
274 |
} |
|
273 |
//Process 자동 배분 |
|
274 |
DefaultAffinity = GetAffinityMask(processCount, processCount); |
|
275 | 275 |
|
276 | 276 |
long affinityMask = 0; |
277 | 277 |
|
278 | 278 |
while (ProcessorAffinityList.Count() < ServiceProperty.PROCESS_COUNT) |
279 |
|
|
280 |
for (int i = ServiceProperty.PROCESS_COUNT; i > 0; i--) |
|
279 | 281 |
{ |
280 |
if(affinityMask <= 1) |
|
281 |
{ |
|
282 |
affinityMask = 1 << (processCount - 1); |
|
283 |
} |
|
284 |
else |
|
282 |
affinityMask = GetAffinityMask(processCount, i); |
|
283 |
|
|
284 |
if (Environment.UserInteractive) |
|
285 | 285 |
{ |
286 |
affinityMask = affinityMask >>1;
|
|
286 |
Console.WriteLine($"index{string.Format("{0:D2}", ProcessorAffinityList.Count())} - {longToBinaryString(affinityMask)}");
|
|
287 | 287 |
} |
288 | 288 |
|
289 | 289 |
ProcessorAffinityList.Add(affinityMask); |
290 | 290 |
} |
291 |
} |
|
291 | 292 |
|
292 |
// for (int i = 0; i < AffinityScope; i += AffinityScope)
|
|
293 |
// {
|
|
294 |
// var bits = new int[processCount];
|
|
293 |
private static long GetAffinityMask(int processCount, int index)
|
|
294 |
{ |
|
295 |
BitArray bitArray = new BitArray(processCount);
|
|
295 | 296 |
|
296 |
// for (int j = i; j < i + AffinityScope; j++) |
|
297 |
// { |
|
298 |
// bits[j] = 1; |
|
299 |
// } |
|
297 |
if (processCount - 1 < index) |
|
298 |
{ |
|
299 |
bitArray = new BitArray(processCount, true); |
|
300 |
} |
|
301 |
else |
|
302 |
{ |
|
303 |
bitArray.Set(index, true); |
|
304 |
} |
|
300 | 305 |
|
301 |
// var affinity = System.Convert.ToInt64(string.Join("", bits), 2);
|
|
306 |
var bits = bitArray.Cast<bool>().Select(bit => bit ? 1 : 0);
|
|
302 | 307 |
|
303 |
//#if DEBUG |
|
304 |
// List<int> test = bits.ToList(); |
|
305 |
// test.Reverse(); |
|
306 |
// System.Diagnostics.Debug.WriteLine($"index{string.Format("0#",i)} - {string.Join("", test)}"); |
|
307 |
//#endif |
|
308 |
// ProcessorAffinityList.Add(affinity); |
|
309 |
// } |
|
308 |
return System.Convert.ToInt64(string.Join("", bits), 2); |
|
309 |
} |
|
310 |
private static string longToBinaryString(long value) |
|
311 |
{ |
|
312 |
string binary = Convert.ToString(value, 2); |
|
313 |
return binary.PadLeft(64, '0'); |
|
310 | 314 |
} |
311 | 315 |
|
312 | 316 |
public void StartService() |
ConvertService/ServiceBase/Markus.Service.Station/ServiceStation.ini | ||
---|---|---|
1 | 1 |
[SERVICE] |
2 |
WINDOW = true
|
|
2 |
WINDOW = false
|
|
3 | 3 |
IS_STATAION = true |
4 | 4 |
|
5 |
#IS_STATAION이 false인 경우 STATAION_ADDRESS를 명시. |
|
6 |
#IS_STATAION는 위성 station으로 main에서 받아서 처리함. |
|
5 | 7 |
STATAION_ADDRESS = http://localhost:9991/StationService |
6 | 8 |
|
7 | 9 |
SERVICE_ID = 03A98B3B-ECCD-4972-B658-43C7571965DA |
8 |
# 구분자는 ',' |
|
10 |
# 설정된 ID의 SERVICE_PROPERTIES를 가져온다. |
|
11 |
#구분자는 ',' |
|
9 | 12 |
SERVICE_LIST = |
10 | 13 |
|
11 | 14 |
# DAELIM |
ConvertService/ServiceBase/Markus.Service.Station/StationService/ServiceStationTask.cs | ||
---|---|---|
34 | 34 |
bool result = false; |
35 | 35 |
try |
36 | 36 |
{ |
37 |
|
|
38 | 37 |
Process ConvertProcess = new Process(); |
39 | 38 |
|
40 | 39 |
ProcessContext processSendData = new ProcessContext |
... | ... | |
54 | 53 |
}; |
55 | 54 |
|
56 | 55 |
var sendData = ObjectToBytesStringConvert.ObjectToBytesString(processSendData); |
57 |
var convertPath = System.IO.Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Convert\\Markus.Service.ConvertProcess.exe");
|
|
56 |
var convertPath = System.IO.Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Convert"); |
|
58 | 57 |
|
59 | 58 |
ProcessStartInfo startInfo = new ProcessStartInfo |
60 | 59 |
{ |
61 | 60 |
UseShellExecute = false, |
62 |
FileName = convertPath,
|
|
61 |
FileName = System.IO.Path.Combine(convertPath, "Markus.Service.ConvertProcess.exe"),
|
|
63 | 62 |
WindowStyle = ProcessWindowStyle.Hidden, |
64 | 63 |
CreateNoWindow = true, |
65 | 64 |
ErrorDialog = false, |
66 | 65 |
RedirectStandardError = false, |
66 |
WorkingDirectory = convertPath, |
|
67 | 67 |
Arguments = $"{convertitem.ID.ToString()} {AESEncrypter.Encrypt(sendData)}" |
68 | 68 |
//Arguments = $"{convertitem.ConvertID.ToString()} {convertitem.ProjectNumber} {AESEncrypter.Encrypt(MarkusDBConnectionString)} {gServiceHostAddress} {DownloadTempFolder} {MultiThreadMaxPages}" |
69 | 69 |
}; |
... | ... | |
96 | 96 |
} |
97 | 97 |
else |
98 | 98 |
{ |
99 |
// 모두 사용중일때 점유율이 작은 걸로 사용 |
|
100 |
var CurrentProcessAffinity = AliveConvertQueue.Where(x=>x.ProcessorAffinity > 0).Select(f => f.ProcessorAffinity).Distinct(); |
|
101 |
|
|
102 |
currentAffinity = CurrentProcessAffinity.Min(); |
|
103 |
ConvertProcess.ProcessorAffinity = new IntPtr(currentAffinity); |
|
99 |
ConvertProcess.ProcessorAffinity = new IntPtr(DefaultAffinity); |
|
104 | 100 |
|
105 | 101 |
logger.Info($"convert process Affinity All use {currentAffinity} : ConvertDoc ID:{convertitem.ID}"); |
106 |
|
|
107 | 102 |
} |
108 | 103 |
|
109 | 104 |
var item = AliveConvertQueue.Find(x => x.Equals(convertitem)); |
... | ... | |
291 | 286 |
{ |
292 | 287 |
try |
293 | 288 |
{ |
294 |
subservice.IsOnline = await SytemNet.PingAsync(subservice.Properties.SERVICE_ADDRESS); |
|
295 |
|
|
296 |
if (subservice.IsOnline) |
|
289 |
if (subservice.Properties.ID == this.ServiceProperty.ID) |
|
297 | 290 |
{ |
298 |
var alivelist = await subservice.Service.AliveConvertListAsync(); |
|
299 |
|
|
300 |
subservice.ConvertItems = alivelist.Cast<ConvertDoc>().ToList(); |
|
301 |
subservice.AliveCount = alivelist.Count(); |
|
291 |
subservice.ConvertItems = this.AliveConvertList(); |
|
292 |
subservice.AliveCount = this.AliveConvertList().Count(); |
|
302 | 293 |
} |
303 | 294 |
else |
304 | 295 |
{ |
305 |
logger.Error($"Connection Error {subservice.Properties.SERVICE_ADDRESS}"); |
|
306 |
subservice.ConvertItems = new List<ConvertDoc>(); |
|
307 |
subservice.AliveCount = subservice.Properties.PROCESS_COUNT; |
|
296 |
subservice.IsOnline = await SytemNet.PingAsync(subservice.Properties.SERVICE_ADDRESS); |
|
297 |
|
|
298 |
if (subservice.IsOnline) |
|
299 |
{ |
|
300 |
var alivelist = await subservice.Service.AliveConvertListAsync(); |
|
301 |
|
|
302 |
subservice.ConvertItems = alivelist.Select(x => |
|
303 |
new ConvertDoc(x.ID, x.PROJECT_NO, x.DOCUMENT_URL, x.DOCUMENT_ID, |
|
304 |
x.CREATE_DATETIME, x.STATUS, x.TOTAL_PAGE, x.CURRENT_PAGE, |
|
305 |
x.RECONVERTER, x.EXCEPTION, x.END_DATETIME, x.START_DATETIME, x.SERVICE_ID) |
|
306 |
).ToList(); |
|
307 |
|
|
308 |
subservice.AliveCount = alivelist.Count(); |
|
309 |
} |
|
310 |
else |
|
311 |
{ |
|
312 |
logger.Error($"Connection Error {subservice.Properties.SERVICE_ADDRESS}"); |
|
313 |
subservice.ConvertItems = new List<ConvertDoc>(); |
|
314 |
subservice.AliveCount = subservice.Properties.PROCESS_COUNT; |
|
315 |
} |
|
308 | 316 |
} |
309 | 317 |
|
310 | 318 |
result = true; |
... | ... | |
381 | 389 |
} |
382 | 390 |
catch (Exception ex) |
383 | 391 |
{ |
384 |
logger.Error($"setDataBaseWaitingList", ex);
|
|
392 |
logger.Error($"PassConvertItem", ex);
|
|
385 | 393 |
} |
386 | 394 |
} |
387 | 395 |
|
... | ... | |
449 | 457 |
foreach (var item in StationServiceList.Where(x => x.IsOnline)) |
450 | 458 |
{ |
451 | 459 |
var serviceItems = await item.Service.AliveConvertListAsync(); |
452 |
aliveItems.AddRange(serviceItems.Cast<ConvertDoc>()); |
|
460 |
|
|
461 |
var convertDocItems = serviceItems.Select(x => new ConvertDoc(x.ID, x.PROJECT_NO, x.DOCUMENT_URL, x.DOCUMENT_ID, |
|
462 |
x.CREATE_DATETIME, x.STATUS, x.TOTAL_PAGE, x.CURRENT_PAGE, |
|
463 |
x.RECONVERTER, x.EXCEPTION, x.END_DATETIME, x.START_DATETIME, x.SERVICE_ID)); |
|
464 |
|
|
465 |
|
|
466 |
aliveItems.AddRange(convertDocItems); |
|
453 | 467 |
} |
454 | 468 |
|
455 |
if (aliveItems.Count() > 0) |
|
456 |
{ |
|
457 |
logger.Warn($"aliveItems : {string.Join(",",aliveItems.Select(x=>x.ID))}");
|
|
469 |
//if (aliveItems.Count() > 0)
|
|
470 |
//{
|
|
471 |
//logger.Warn($"aliveItems : {string.Join(",",aliveItems.Select(x=>x.ID))}");
|
|
458 | 472 |
|
459 | 473 |
foreach (var item in items) |
460 | 474 |
{ |
... | ... | |
465 | 479 |
repository.SetCleanUpItemAsync(item.ID, 0).GetAwaiter().GetResult(); |
466 | 480 |
} |
467 | 481 |
} |
468 |
} |
|
482 |
//}
|
|
469 | 483 |
|
470 | 484 |
} |
471 | 485 |
} |
... | ... | |
544 | 558 |
ReleaseItems(); |
545 | 559 |
} |
546 | 560 |
} |
547 |
else |
|
548 |
{ |
|
549 |
if (StationClient != null) |
|
550 |
{ |
|
551 |
await StationClient.ReleaseConvertItemsAsync(); |
|
552 |
} |
|
553 |
} |
|
561 |
//else
|
|
562 |
//{
|
|
563 |
// if (StationClient != null)
|
|
564 |
// {
|
|
565 |
// await StationClient.ReleaseConvertItemsAsync();
|
|
566 |
// }
|
|
567 |
//}
|
|
554 | 568 |
//if (ServiceStation.AliveConvertQueue.Count() < MultiProcessCount) |
555 | 569 |
//{ |
556 | 570 |
// setDataBaseWaitingList(); |
ConvertService/ServiceBase/Markus.Service.Station/StationService/ServiceStationWCF.cs | ||
---|---|---|
107 | 107 |
{ |
108 | 108 |
using (ConvertDocRepository database = new ConvertDocRepository(MarkusDBConnectionString)) |
109 | 109 |
{ |
110 |
var convertItem = database.GetConvertDocSingleAsync(ProjectNo: ProjectNo, DocumentID: DocumentID).GetAwaiter().GetResult(); |
|
110 |
//var convertItem = database.GetConvertDocSingleAsync(ProjectNo: ProjectNo, DocumentID: DocumentID).GetAwaiter().GetResult();
|
|
111 | 111 |
|
112 |
if (convertItem != null) |
|
112 |
//if (convertItem != null) |
|
113 |
//{ |
|
114 |
var newConvertDocId = database.CreateAsync(ProjectNo, originfilePath, DocumentID).GetAwaiter().GetResult(); |
|
115 |
|
|
116 |
if (newConvertDocId == null) |
|
113 | 117 |
{ |
114 |
var newConvertDocId = database.CreateAsync(ProjectNo, originfilePath, DocumentID).GetAwaiter().GetResult(); |
|
118 |
logger.Error($"Set Convert document Insert Error - createId is Null. ProjectNo:{ProjectNo} originfilePath:{originfilePath} DocumentID:{DocumentID}"); |
|
119 |
} |
|
120 |
else |
|
121 |
{ |
|
122 |
var aliveItems = AliveConvertQueue.Where(x => x.DOCUMENT_ID == DocumentID); |
|
115 | 123 |
|
116 |
if (newConvertDocId == null)
|
|
124 |
if (aliveItems.Count() == 0)
|
|
117 | 125 |
{ |
118 |
logger.Error($"Set Convert document Insert Error - createId is Null. ProjectNo:{ProjectNo} originfilePath:{originfilePath} DocumentID:{DocumentID}");
|
|
126 |
result = ConvertProcessAdd(ProjectNo, newConvertDocId);
|
|
119 | 127 |
} |
120 | 128 |
else |
121 | 129 |
{ |
122 |
var aliveItems = AliveConvertQueue.Where(x => x.DOCUMENT_ID == convertItem.DOCUMENT_ID); |
|
123 |
|
|
124 |
if (aliveItems.Count() == 0) |
|
125 |
{ |
|
126 |
result = ConvertProcessAdd(ProjectNo, newConvertDocId); |
|
127 |
} |
|
128 |
else |
|
129 |
{ |
|
130 |
logger.Info("ConvertMenualAdd Wait ProjectNo:{ ProjectNo} originfilePath: { originfilePath} DocumentID: { DocumentID}"); |
|
131 |
} |
|
132 |
|
|
133 |
result = true.ToString(); |
|
130 |
logger.Info("ConvertMenualAdd Wait ProjectNo:{ ProjectNo} originfilePath: { originfilePath} DocumentID: { DocumentID}"); |
|
134 | 131 |
} |
132 |
|
|
133 |
result = true.ToString(); |
|
135 | 134 |
} |
135 |
//} |
|
136 | 136 |
} |
137 | 137 |
} |
138 | 138 |
catch (Exception ex) |
... | ... | |
282 | 282 |
/// <returns></returns> |
283 | 283 |
public bool ConvertProcessState(string ConvertDocID, int status, int CurrentPage, int TotalPage, string Error) |
284 | 284 |
{ |
285 |
bool isStatusChange = false; |
|
286 |
|
|
285 | 287 |
if (AliveConvertQueue.Count() > 0) |
286 | 288 |
{ |
287 | 289 |
var items = AliveConvertQueue.Where(x => x.ID == ConvertDocID); |
... | ... | |
292 | 294 |
|
293 | 295 |
item.TOTAL_PAGE = TotalPage; |
294 | 296 |
item.CURRENT_PAGE = CurrentPage; |
295 |
item.STATUS = status; |
|
297 |
|
|
298 |
if (item.STATUS != status) |
|
299 |
{ |
|
300 |
item.STATUS = status; |
|
301 |
isStatusChange = true; |
|
302 |
} |
|
296 | 303 |
} |
297 | 304 |
} |
298 | 305 |
|
299 |
if (CurrentPage % SaveStatusInterval == 0 || !Error.IsNullOrEmpty()) |
|
306 |
if (isStatusChange || CurrentPage % SaveStatusInterval == 0 || !Error.IsNullOrEmpty())
|
|
300 | 307 |
{ |
301 | 308 |
using (ConvertDocRepository database = new ConvertDocRepository(MarkusDBConnectionString)) |
302 | 309 |
{ |
... | ... | |
405 | 412 |
bool result = false; |
406 | 413 |
try |
407 | 414 |
{ |
408 |
gWcfServiceHost.Abort(); |
|
415 |
if (gWcfServiceHost != null) |
|
416 |
{ |
|
417 |
gWcfServiceHost.Abort(); |
|
418 |
} |
|
419 |
|
|
409 | 420 |
result = true; |
410 | 421 |
} |
411 | 422 |
catch (Exception ex) |
ConvertService/ServiceBase/Markus.Service.Station/obfuscar.xml | ||
---|---|---|
5 | 5 |
<Var name="HidePrivateApi" value="true" /> |
6 | 6 |
<Module file="$(InPath)\Markus.Service.Station.exe"/> |
7 | 7 |
<Module file="$(InPath)\Markus.Service.Extensions.dll" /> |
8 |
<!----> <Module file="$(InPath)\Markus.Service.DataBase.Dapper.dll" />
|
|
8 |
<Module file="$(InPath)\Markus.Service.DataBase.Dapper.dll" /> |
|
9 | 9 |
</Obfuscator> |
ConvertService/ServiceBase/Markus.Service.StationConsole/Markus.Service.StationConsole.csproj | ||
---|---|---|
77 | 77 |
<ErrorReport>prompt</ErrorReport> |
78 | 78 |
</PropertyGroup> |
79 | 79 |
<PropertyGroup> |
80 |
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
|
|
80 |
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
81 | 81 |
</PropertyGroup> |
82 | 82 |
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseAll_XI|AnyCPU'"> |
83 | 83 |
<OutputPath>bin\ReleaseAll_XI\</OutputPath> |
ConvertService/ServiceBase/Markus.Service.WcfClient/Connected Services/StationServiceAsync/Markus.Service.DataBase.Entities.xsd | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/Markus.Service.DataBase.Entities" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Markus.Service.DataBase.Entities" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
3 |
<xs:complexType name="ArrayOfConvertDoc"> |
|
4 |
<xs:sequence> |
|
5 |
<xs:element minOccurs="0" maxOccurs="unbounded" name="ConvertDoc" nillable="true" type="tns:ConvertDoc" /> |
|
6 |
</xs:sequence> |
|
7 |
</xs:complexType> |
|
8 |
<xs:element name="ArrayOfConvertDoc" nillable="true" type="tns:ArrayOfConvertDoc" /> |
|
9 |
<xs:complexType name="ConvertDoc"> |
|
10 |
<xs:sequence> |
|
11 |
<xs:element minOccurs="0" name="CREATE_DATETIME" type="xs:dateTime" /> |
|
12 |
<xs:element minOccurs="0" name="CURRENT_PAGE" type="xs:int" /> |
|
13 |
<xs:element minOccurs="0" name="ConvertPath" nillable="true" type="xs:string" /> |
|
14 |
<xs:element minOccurs="0" name="DOCUMENT_ID" nillable="true" type="xs:string" /> |
|
15 |
<xs:element minOccurs="0" name="DOCUMENT_URL" nillable="true" type="xs:string" /> |
|
16 |
<xs:element minOccurs="0" name="END_DATETIME" type="xs:dateTime" /> |
|
17 |
<xs:element minOccurs="0" name="EXCEPTION" nillable="true" type="xs:string" /> |
|
18 |
<xs:element minOccurs="0" name="ID" nillable="true" type="xs:string" /> |
|
19 |
<xs:element minOccurs="0" name="PROJECT_NO" nillable="true" type="xs:string" /> |
|
20 |
<xs:element minOccurs="0" name="RECONVERTER" type="xs:int" /> |
|
21 |
<xs:element minOccurs="0" name="SERVICE_ID" nillable="true" type="xs:string" /> |
|
22 |
<xs:element minOccurs="0" name="START_DATETIME" type="xs:dateTime" /> |
|
23 |
<xs:element minOccurs="0" name="STATUS" type="xs:int" /> |
|
24 |
<xs:element minOccurs="0" name="TOTAL_PAGE" type="xs:int" /> |
|
25 |
</xs:sequence> |
|
26 |
</xs:complexType> |
|
27 |
<xs:element name="ConvertDoc" nillable="true" type="tns:ConvertDoc" /> |
|
28 |
</xs:schema> |
ConvertService/ServiceBase/Markus.Service.WcfClient/Connected Services/StationServiceAsync/Markus.Service.WcfClient.StationServiceAsync.ConvertDoc.datasource | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<!-- |
|
3 |
This file is automatically generated by Visual Studio .Net. It is |
|
4 |
used to store generic object data source configuration information. |
|
5 |
Renaming the file extension or editing the content of this file may |
|
6 |
cause the file to be unrecognizable by the program. |
|
7 |
--> |
|
8 |
<GenericObjectDataSource DisplayName="ConvertDoc" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> |
|
9 |
<TypeInfo>Markus.Service.WcfClient.StationServiceAsync.ConvertDoc, Connected Services.StationServiceAsync.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> |
|
10 |
</GenericObjectDataSource> |
ConvertService/ServiceBase/Markus.Service.WcfClient/Connected Services/StationServiceTask/Markus.Service.DataBase.Entities.xsd | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/Markus.Service.DataBase.Entities" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Markus.Service.DataBase.Entities" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
3 |
<xs:complexType name="ArrayOfConvertDoc"> |
|
4 |
<xs:sequence> |
|
5 |
<xs:element minOccurs="0" maxOccurs="unbounded" name="ConvertDoc" nillable="true" type="tns:ConvertDoc" /> |
|
6 |
</xs:sequence> |
|
7 |
</xs:complexType> |
|
8 |
<xs:element name="ArrayOfConvertDoc" nillable="true" type="tns:ArrayOfConvertDoc" /> |
|
9 |
<xs:complexType name="ConvertDoc"> |
|
10 |
<xs:sequence> |
|
11 |
<xs:element minOccurs="0" name="CREATE_DATETIME" type="xs:dateTime" /> |
|
12 |
<xs:element minOccurs="0" name="CURRENT_PAGE" type="xs:int" /> |
|
13 |
<xs:element minOccurs="0" name="ConvertPath" nillable="true" type="xs:string" /> |
|
14 |
<xs:element minOccurs="0" name="DOCUMENT_ID" nillable="true" type="xs:string" /> |
|
15 |
<xs:element minOccurs="0" name="DOCUMENT_URL" nillable="true" type="xs:string" /> |
|
16 |
<xs:element minOccurs="0" name="END_DATETIME" type="xs:dateTime" /> |
|
17 |
<xs:element minOccurs="0" name="EXCEPTION" nillable="true" type="xs:string" /> |
|
18 |
<xs:element minOccurs="0" name="ID" nillable="true" type="xs:string" /> |
|
19 |
<xs:element minOccurs="0" name="PROJECT_NO" nillable="true" type="xs:string" /> |
|
20 |
<xs:element minOccurs="0" name="RECONVERTER" type="xs:int" /> |
|
21 |
<xs:element minOccurs="0" name="SERVICE_ID" nillable="true" type="xs:string" /> |
|
22 |
<xs:element minOccurs="0" name="START_DATETIME" type="xs:dateTime" /> |
|
23 |
<xs:element minOccurs="0" name="STATUS" type="xs:int" /> |
|
24 |
<xs:element minOccurs="0" name="TOTAL_PAGE" type="xs:int" /> |
|
25 |
</xs:sequence> |
|
26 |
</xs:complexType> |
|
27 |
<xs:element name="ConvertDoc" nillable="true" type="tns:ConvertDoc" /> |
|
28 |
</xs:schema> |
ConvertService/ServiceBase/Markus.Service.WcfClient/Connected Services/StationServiceTask/Markus.Service.WcfClient.StationServiceTask.ConvertDoc.datasource | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<!-- |
|
3 |
This file is automatically generated by Visual Studio .Net. It is |
|
4 |
used to store generic object data source configuration information. |
|
5 |
Renaming the file extension or editing the content of this file may |
|
6 |
cause the file to be unrecognizable by the program. |
|
7 |
--> |
|
8 |
<GenericObjectDataSource DisplayName="ConvertDoc" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> |
|
9 |
<TypeInfo>Markus.Service.WcfClient.StationServiceTask.ConvertDoc, Connected Services.StationServiceTask.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> |
|
10 |
</GenericObjectDataSource> |
ConvertService/ServiceBase/Markus.Service.WcfClient/Markus.Service.WcfClient.csproj | ||
---|---|---|
59 | 59 |
<LangVersion>7.3</LangVersion> |
60 | 60 |
<ErrorReport>prompt</ErrorReport> |
61 | 61 |
</PropertyGroup> |
62 |
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
|
63 |
<DebugSymbols>true</DebugSymbols> |
|
64 |
<OutputPath>bin\x64\Debug\</OutputPath> |
|
65 |
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|
66 |
<DebugType>full</DebugType> |
|
67 |
<PlatformTarget>x64</PlatformTarget> |
|
68 |
<LangVersion>7.3</LangVersion> |
|
69 |
<ErrorReport>prompt</ErrorReport> |
|
70 |
</PropertyGroup> |
|
71 |
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> |
|
72 |
<OutputPath>bin\x64\Release\</OutputPath> |
|
73 |
<DefineConstants>TRACE</DefineConstants> |
|
74 |
<Optimize>true</Optimize> |
|
75 |
<DebugType>pdbonly</DebugType> |
|
76 |
<PlatformTarget>x64</PlatformTarget> |
|
77 |
<LangVersion>7.3</LangVersion> |
|
78 |
<ErrorReport>prompt</ErrorReport> |
|
79 |
</PropertyGroup> |
|
80 |
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseAll_XI|x64'"> |
|
81 |
<OutputPath>bin\x64\ReleaseAll_XI\</OutputPath> |
|
82 |
<DefineConstants>TRACE</DefineConstants> |
|
83 |
<Optimize>true</Optimize> |
|
84 |
<DebugType>pdbonly</DebugType> |
|
85 |
<PlatformTarget>x64</PlatformTarget> |
|
86 |
<LangVersion>7.3</LangVersion> |
|
87 |
<ErrorReport>prompt</ErrorReport> |
|
88 |
</PropertyGroup> |
|
62 | 89 |
<ItemGroup> |
63 | 90 |
<None Include="App.config" /> |
64 | 91 |
<None Include="Connected Services\StationServiceAsync\Markus.Service.DataBase.Entities.xsd"> |
ConvertService/ServiceBase/Markus.Service.WcfService/IStationService.cs | ||
---|---|---|
45 | 45 |
bool ReleaseConvertItems(); |
46 | 46 |
|
47 | 47 |
[OperationContract] |
48 |
List<Markus.Service.DataBase.Entities.ConvertDoc> WaitConvertList();
|
|
48 |
List<ConvertDoc> WaitConvertList(); |
|
49 | 49 |
|
50 | 50 |
[OperationContract] |
51 |
List<Markus.Service.DataBase.Entities.ConvertDoc> AliveConvertList();
|
|
51 |
List<ConvertDoc> AliveConvertList(); |
|
52 | 52 |
} |
53 | 53 |
|
54 | 54 |
[DataContract] |
ConvertService/ServiceBase/ServiceBase.sln | ||
---|---|---|
156 | 156 |
EndProject |
157 | 157 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.Service.DataBase.Test", "Markus.Service.DataBase.Test\Markus.Service.DataBase.Test.csproj", "{A24E55D1-5834-4FF0-95D0-1486A6489812}" |
158 | 158 |
EndProject |
159 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProecssAffinityTest", "ProecssAffinityTest\ProecssAffinityTest.csproj", "{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}" |
|
160 |
ProjectSection(ProjectDependencies) = postProject |
|
161 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3} = {19630D90-C780-47D4-97D9-54BD2D76B6D3} |
|
162 |
EndProjectSection |
|
163 |
EndProject |
|
164 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProcessAffinityTestProcess", "ProcessAffinityTestProcess\ProcessAffinityTestProcess.csproj", "{19630D90-C780-47D4-97D9-54BD2D76B6D3}" |
|
165 |
EndProject |
|
159 | 166 |
Global |
160 | 167 |
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
161 | 168 |
ConvertProcessTest|Any CPU = ConvertProcessTest|Any CPU |
... | ... | |
603 | 610 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ConvertProcessTest|x86.Build.0 = Debug|Any CPU |
604 | 611 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
605 | 612 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|Any CPU.Build.0 = Debug|Any CPU |
606 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
607 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x64.Build.0 = Debug|Any CPU
|
|
613 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x64.ActiveCfg = Debug|x64
|
|
614 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x64.Build.0 = Debug|x64
|
|
608 | 615 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x86.ActiveCfg = Debug|Any CPU |
609 | 616 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x86.Build.0 = Debug|Any CPU |
610 | 617 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.DownloadPluginTest|Any CPU.ActiveCfg = Debug|Any CPU |
... | ... | |
620 | 627 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|x86.Build.0 = Release|Any CPU |
621 | 628 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|Any CPU.ActiveCfg = Release|Any CPU |
622 | 629 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|Any CPU.Build.0 = Release|Any CPU |
623 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|x64.ActiveCfg = Release|Any CPU
|
|
624 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|x64.Build.0 = Release|Any CPU
|
|
630 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|x64.ActiveCfg = Release|x64
|
|
631 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|x64.Build.0 = Release|x64
|
|
625 | 632 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|x86.ActiveCfg = Release|Any CPU |
626 | 633 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll_XI|x86.Build.0 = Release|Any CPU |
627 | 634 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|Any CPU.ActiveCfg = Release|Any CPU |
628 | 635 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|Any CPU.Build.0 = Release|Any CPU |
629 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|x64.ActiveCfg = Release|Any CPU
|
|
630 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|x64.Build.0 = Release|Any CPU
|
|
636 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|x64.ActiveCfg = Release|x64
|
|
637 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|x64.Build.0 = Release|x64
|
|
631 | 638 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|x86.ActiveCfg = Release|Any CPU |
632 | 639 |
{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.ReleaseAll|x86.Build.0 = Release|Any CPU |
633 | 640 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.ConvertProcessTest|Any CPU.ActiveCfg = Debug|Any CPU |
... | ... | |
1435 | 1442 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll_XI|x86.Build.0 = Release|Any CPU |
1436 | 1443 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|Any CPU.ActiveCfg = Release|Any CPU |
1437 | 1444 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|Any CPU.Build.0 = Release|Any CPU |
1438 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|x64.ActiveCfg = Release|Any CPU
|
|
1439 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|x64.Build.0 = Release|Any CPU
|
|
1445 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|x64.ActiveCfg = Release|x64
|
|
1446 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|x64.Build.0 = Release|x64
|
|
1440 | 1447 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|x86.ActiveCfg = Release|Any CPU |
1441 | 1448 |
{F835DD07-7F0C-4DBD-A596-F3110D187421}.ReleaseAll|x86.Build.0 = Release|Any CPU |
1442 | 1449 |
{049371B3-816C-4104-9386-2F830B6BA7E5}.ConvertProcessTest|Any CPU.ActiveCfg = Debug|Any CPU |
... | ... | |
1511 | 1518 |
{A24E55D1-5834-4FF0-95D0-1486A6489812}.ReleaseAll|x64.Build.0 = Release|Any CPU |
1512 | 1519 |
{A24E55D1-5834-4FF0-95D0-1486A6489812}.ReleaseAll|x86.ActiveCfg = Release|Any CPU |
1513 | 1520 |
{A24E55D1-5834-4FF0-95D0-1486A6489812}.ReleaseAll|x86.Build.0 = Release|Any CPU |
1521 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ConvertProcessTest|Any CPU.ActiveCfg = Debug|Any CPU |
|
1522 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ConvertProcessTest|Any CPU.Build.0 = Debug|Any CPU |
|
1523 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ConvertProcessTest|x64.ActiveCfg = Debug|Any CPU |
|
1524 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ConvertProcessTest|x64.Build.0 = Debug|Any CPU |
|
1525 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ConvertProcessTest|x86.ActiveCfg = Debug|Any CPU |
|
1526 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ConvertProcessTest|x86.Build.0 = Debug|Any CPU |
|
1527 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
1528 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
1529 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Debug|x64.ActiveCfg = Debug|Any CPU |
|
1530 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Debug|x64.Build.0 = Debug|Any CPU |
|
1531 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Debug|x86.ActiveCfg = Debug|Any CPU |
|
1532 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Debug|x86.Build.0 = Debug|Any CPU |
|
1533 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.DownloadPluginTest|Any CPU.ActiveCfg = Debug|Any CPU |
|
1534 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.DownloadPluginTest|Any CPU.Build.0 = Debug|Any CPU |
|
1535 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.DownloadPluginTest|x64.ActiveCfg = Debug|Any CPU |
|
1536 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.DownloadPluginTest|x64.Build.0 = Debug|Any CPU |
|
1537 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.DownloadPluginTest|x86.ActiveCfg = Debug|Any CPU |
|
1538 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.DownloadPluginTest|x86.Build.0 = Debug|Any CPU |
|
1539 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
1540 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Release|Any CPU.Build.0 = Release|Any CPU |
|
1541 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Release|x64.ActiveCfg = Release|Any CPU |
|
1542 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Release|x64.Build.0 = Release|Any CPU |
|
1543 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Release|x86.ActiveCfg = Release|Any CPU |
|
1544 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.Release|x86.Build.0 = Release|Any CPU |
|
1545 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll_XI|Any CPU.ActiveCfg = Release|Any CPU |
|
1546 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll_XI|Any CPU.Build.0 = Release|Any CPU |
|
1547 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll_XI|x64.ActiveCfg = Release|Any CPU |
|
1548 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll_XI|x64.Build.0 = Release|Any CPU |
|
1549 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll_XI|x86.ActiveCfg = Release|Any CPU |
|
1550 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll_XI|x86.Build.0 = Release|Any CPU |
|
1551 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll|Any CPU.ActiveCfg = Release|Any CPU |
|
1552 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll|Any CPU.Build.0 = Release|Any CPU |
|
1553 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll|x64.ActiveCfg = Release|Any CPU |
|
1554 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll|x64.Build.0 = Release|Any CPU |
|
1555 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll|x86.ActiveCfg = Release|Any CPU |
|
1556 |
{7B149E7F-FACD-47B2-80F3-D62D9B1A3158}.ReleaseAll|x86.Build.0 = Release|Any CPU |
|
1557 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ConvertProcessTest|Any CPU.ActiveCfg = Debug|Any CPU |
|
1558 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ConvertProcessTest|Any CPU.Build.0 = Debug|Any CPU |
|
1559 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ConvertProcessTest|x64.ActiveCfg = Debug|Any CPU |
|
1560 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ConvertProcessTest|x64.Build.0 = Debug|Any CPU |
|
1561 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ConvertProcessTest|x86.ActiveCfg = Debug|Any CPU |
|
1562 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ConvertProcessTest|x86.Build.0 = Debug|Any CPU |
|
1563 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
1564 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
1565 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Debug|x64.ActiveCfg = Debug|Any CPU |
|
1566 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Debug|x64.Build.0 = Debug|Any CPU |
|
1567 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Debug|x86.ActiveCfg = Debug|Any CPU |
|
1568 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Debug|x86.Build.0 = Debug|Any CPU |
|
1569 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.DownloadPluginTest|Any CPU.ActiveCfg = Debug|Any CPU |
|
1570 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.DownloadPluginTest|Any CPU.Build.0 = Debug|Any CPU |
|
1571 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.DownloadPluginTest|x64.ActiveCfg = Debug|Any CPU |
|
1572 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.DownloadPluginTest|x64.Build.0 = Debug|Any CPU |
|
1573 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.DownloadPluginTest|x86.ActiveCfg = Debug|Any CPU |
|
1574 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.DownloadPluginTest|x86.Build.0 = Debug|Any CPU |
|
1575 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
1576 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Release|Any CPU.Build.0 = Release|Any CPU |
|
1577 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Release|x64.ActiveCfg = Release|Any CPU |
|
1578 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Release|x64.Build.0 = Release|Any CPU |
|
1579 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Release|x86.ActiveCfg = Release|Any CPU |
|
1580 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.Release|x86.Build.0 = Release|Any CPU |
|
1581 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll_XI|Any CPU.ActiveCfg = Release|Any CPU |
|
1582 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll_XI|Any CPU.Build.0 = Release|Any CPU |
|
1583 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll_XI|x64.ActiveCfg = Release|Any CPU |
|
1584 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll_XI|x64.Build.0 = Release|Any CPU |
|
1585 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll_XI|x86.ActiveCfg = Release|Any CPU |
|
1586 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll_XI|x86.Build.0 = Release|Any CPU |
|
1587 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll|Any CPU.ActiveCfg = Release|Any CPU |
|
1588 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll|Any CPU.Build.0 = Release|Any CPU |
|
1589 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll|x64.ActiveCfg = Release|Any CPU |
|
1590 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll|x64.Build.0 = Release|Any CPU |
|
1591 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll|x86.ActiveCfg = Release|Any CPU |
|
1592 |
{19630D90-C780-47D4-97D9-54BD2D76B6D3}.ReleaseAll|x86.Build.0 = Release|Any CPU |
|
1514 | 1593 |
EndGlobalSection |
1515 | 1594 |
GlobalSection(SolutionProperties) = preSolution |
1516 | 1595 |
HideSolutionNode = FALSE |
내보내기 Unified diff