hytos / DTI_PID / ID2PSN / Program.cs @ 2ada3be8
이력 | 보기 | 이력해설 | 다운로드 (3.61 KB)
1 |
using Newtonsoft.Json; |
---|---|
2 |
using System; |
3 |
using System.Collections.Generic; |
4 |
using System.Data; |
5 |
using System.IO; |
6 |
using System.Linq; |
7 |
using System.Net.Sockets; |
8 |
using System.Text; |
9 |
using System.Threading.Tasks; |
10 |
using System.Windows.Forms; |
11 |
|
12 |
namespace ID2PSN |
13 |
{ |
14 |
static class Program |
15 |
{ |
16 |
/// <summary> |
17 |
/// 해당 애플리케이션의 주 진입점입니다. |
18 |
/// </summary> |
19 |
[STAThread] |
20 |
static void Main(string[] args) |
21 |
{ |
22 |
if (!SingleInstance.Start("ecf2ed2e-1a3f-4926-a561-512857785805")) |
23 |
{ |
24 |
return; |
25 |
} |
26 |
|
27 |
ID2Info info = ID2Info.GetInstance(); |
28 |
DataTable projectTable = null; |
29 |
try |
30 |
{ |
31 |
using (TcpClient tcpClient = new TcpClient()) |
32 |
{ |
33 |
tcpClient.SendTimeout = 500; |
34 |
tcpClient.Connect("localhost", 2549); |
35 |
|
36 |
var _params = new Dictionary<string, string>() |
37 |
{ |
38 |
{"request", "prjinfo" }, |
39 |
}; |
40 |
var json = JsonConvert.SerializeObject(_params, Formatting.Indented); |
41 |
byte[] message = Encoding.UTF8.GetBytes(json); |
42 |
|
43 |
using (NetworkStream networkStream = tcpClient.GetStream()) |
44 |
{ |
45 |
networkStream.Write(message, 0, message.Length); |
46 |
|
47 |
byte[] outbuf = new byte[1024]; |
48 |
int nbytes = networkStream.Read(outbuf, 0, outbuf.Length); |
49 |
string output = Encoding.UTF8.GetString(outbuf, 4, nbytes - 5); |
50 |
var result = JsonConvert.DeserializeObject<Dictionary<string, string>>(output); |
51 |
|
52 |
|
53 |
if (result["db_type"] == "SQLite") |
54 |
{ |
55 |
info.ID2DBType = ID2DB_Type.SQLite; |
56 |
var parent = Directory.GetParent(Path.GetDirectoryName(result["db_name"])); |
57 |
info.DefaultPath = parent.ToString(); |
58 |
///DataRow dr = projectTable.Select(string.Format("DBTypes_UID = 2 AND Name = '{0}'", result["db_name"])).FirstOrDefault(); |
59 |
///info.DefaultPath = dr.Field<string>("Path"); |
60 |
} |
61 |
else if (result["db_type"] == "MSSQL") |
62 |
{ |
63 |
info.ID2DBType = ID2DB_Type.MSSQL; |
64 |
info.ServerIP = result["host"]; |
65 |
//info.Port = "3389"; |
66 |
info.DBUser = result["user"]; |
67 |
info.DBPassword = result["password"]; |
68 |
info.Database = result["db_name"]; |
69 |
info.DefaultPath = result["path"]; |
70 |
///DataRow dr = projectTable.Select(string.Format("DBTypes_UID = 2 AND Name = '{0}'", result["db_name"])).FirstOrDefault(); |
71 |
///info.DefaultPath = dr.Field<string>("Path"); |
72 |
} |
73 |
} |
74 |
tcpClient.Close(); |
75 |
} |
76 |
|
77 |
if (DB.ConnTestAndCreateTable()) |
78 |
{ |
79 |
Application.EnableVisualStyles(); |
80 |
Application.SetCompatibleTextRenderingDefault(false); |
81 |
Application.Run(new MainForm()); |
82 |
} |
83 |
else |
84 |
MessageBox.Show("fail"); |
85 |
} |
86 |
catch (Exception ex) |
87 |
{ |
88 |
MessageBox.Show("Failed to open ID2 drawing.", "ID2PSN", MessageBoxButtons.OK, MessageBoxIcon.Error); |
89 |
} |
90 |
} |
91 |
} |
92 |
} |