hytos / DTI_PID / ID2PSN / Program.cs @ bded697f
이력 | 보기 | 이력해설 | 다운로드 (4.2 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 |
try |
46 |
{ |
47 |
networkStream.Write(message, 0, message.Length); |
48 |
|
49 |
byte[] outbuf = new byte[1024]; |
50 |
int nbytes = networkStream.Read(outbuf, 0, outbuf.Length); |
51 |
string output = Encoding.UTF8.GetString(outbuf, 4, nbytes - 5); |
52 |
var result = JsonConvert.DeserializeObject<Dictionary<string, string>>(output); |
53 |
|
54 |
if (result["db_type"] == "SQLite") |
55 |
{ |
56 |
info.ID2DBType = ID2DB_Type.SQLite; |
57 |
var parent = Directory.GetParent(Path.GetDirectoryName(result["db_name"])); |
58 |
info.DefaultPath = parent.ToString(); |
59 |
///DataRow dr = projectTable.Select(string.Format("DBTypes_UID = 2 AND Name = '{0}'", result["db_name"])).FirstOrDefault(); |
60 |
///info.DefaultPath = dr.Field<string>("Path"); |
61 |
} |
62 |
else if (result["db_type"] == "MSSQL") |
63 |
{ |
64 |
|
65 |
info.ID2DBType = ID2DB_Type.MSSQL; |
66 |
info.ServerIP = result["host"]; |
67 |
//info.Port = "3389"; |
68 |
info.DBUser = result["user"]; |
69 |
info.DBPassword = result["password"]; |
70 |
info.Database = result["db_name"]; |
71 |
info.DefaultPath = result["path"]; |
72 |
///DataRow dr = projectTable.Select(string.Format("DBTypes_UID = 2 AND Name = '{0}'", result["db_name"])).FirstOrDefault(); |
73 |
///info.DefaultPath = dr.Field<string>("Path"); |
74 |
/// |
75 |
|
76 |
} |
77 |
|
78 |
MessageBox.Show(info.ID2DBType + "\n" + info.ServerIP + "\n" + info.Database + "\n" + info.DefaultPath, "ID2PSN", MessageBoxButtons.OK, MessageBoxIcon.Information); |
79 |
} |
80 |
catch(Exception ex) |
81 |
{ |
82 |
MessageBox.Show(ex.StackTrace, "ID2PSN", MessageBoxButtons.OK, MessageBoxIcon.Error); |
83 |
} |
84 |
} |
85 |
tcpClient.Close(); |
86 |
} |
87 |
|
88 |
if (DB.ConnTestAndCreateTable()) |
89 |
{ |
90 |
Application.EnableVisualStyles(); |
91 |
Application.SetCompatibleTextRenderingDefault(false); |
92 |
Application.Run(new MainForm()); |
93 |
} |
94 |
else |
95 |
MessageBox.Show("fail"); |
96 |
} |
97 |
catch (Exception ex) |
98 |
{ |
99 |
MessageBox.Show(ex.StackTrace, "ID2PSN", MessageBoxButtons.OK, MessageBoxIcon.Error); |
100 |
} |
101 |
} |
102 |
} |
103 |
} |