프로젝트

일반

사용자정보

통계
| 개정판:

hytos / DTI_PID / ID2PSN / Program.cs @ 2ada3be8

이력 | 보기 | 이력해설 | 다운로드 (3.61 KB)

1 7b5ddbe5 humkyung
using Newtonsoft.Json;
2
using System;
3 0dae5645 gaqhf
using System.Collections.Generic;
4 31d37d58 LJIYEON
using System.Data;
5 6b9e7a56 gaqhf
using System.IO;
6 0dae5645 gaqhf
using System.Linq;
7 7b5ddbe5 humkyung
using System.Net.Sockets;
8
using System.Text;
9 0dae5645 gaqhf
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 6b9e7a56 gaqhf
        static void Main(string[] args)
21 0dae5645 gaqhf
        {
22 14ab89ec esham21
            if (!SingleInstance.Start("ecf2ed2e-1a3f-4926-a561-512857785805"))
23 eb41cac4 esham21
            {
24
                return;
25
            }
26
27 721b754d gaqhf
            ID2Info info = ID2Info.GetInstance();
28 31d37d58 LJIYEON
            DataTable projectTable = null;
29 abee404a LJIYEON
            try
30 673075e0 LJIYEON
            {
31 7b5ddbe5 humkyung
                using (TcpClient tcpClient = new TcpClient())
32 abee404a LJIYEON
                {
33 7b5ddbe5 humkyung
                    tcpClient.SendTimeout = 500;
34
                    tcpClient.Connect("localhost", 2549);
35
36
                    var _params = new Dictionary<string, string>()
37 757ab2f2 LJIYEON
                    {
38 c4a35107 humkyung
                        {"request", "prjinfo" },
39 7b5ddbe5 humkyung
                    };
40
                    var json = JsonConvert.SerializeObject(_params, Formatting.Indented);
41
                    byte[] message = Encoding.UTF8.GetBytes(json);
42 757ab2f2 LJIYEON
43 7b5ddbe5 humkyung
                    using (NetworkStream networkStream = tcpClient.GetStream())
44 757ab2f2 LJIYEON
                    {
45 7b5ddbe5 humkyung
                        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 2c46461b LJIYEON
52
53 ce86b7e6 humkyung
                        if (result["db_type"] == "SQLite")
54 7b5ddbe5 humkyung
                        {
55
                            info.ID2DBType = ID2DB_Type.SQLite;
56
                            var parent = Directory.GetParent(Path.GetDirectoryName(result["db_name"]));
57 23a96301 humkyung
                            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 7b5ddbe5 humkyung
                        }
61 ce86b7e6 humkyung
                        else if (result["db_type"] == "MSSQL")
62 7b5ddbe5 humkyung
                        {
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 23a96301 humkyung
                            info.Database = result["db_name"];
69 c4a35107 humkyung
                            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 7b5ddbe5 humkyung
                        }
73 757ab2f2 LJIYEON
                    }
74 7b5ddbe5 humkyung
                    tcpClient.Close();
75 abee404a LJIYEON
                }
76 7bc1e1db gaqhf
77 abee404a LJIYEON
                if (DB.ConnTestAndCreateTable())
78
                {
79
                    Application.EnableVisualStyles();
80
                    Application.SetCompatibleTextRenderingDefault(false);
81 7b5ddbe5 humkyung
                    Application.Run(new MainForm());
82 abee404a LJIYEON
                }
83
                else
84
                    MessageBox.Show("fail");
85
            }
86 7b5ddbe5 humkyung
            catch (Exception ex)
87 6b9e7a56 gaqhf
            {
88 7b5ddbe5 humkyung
                MessageBox.Show("Failed to open ID2 drawing.", "ID2PSN", MessageBoxButtons.OK, MessageBoxIcon.Error);
89 6b9e7a56 gaqhf
            }
90 0dae5645 gaqhf
        }
91
    }
92
}
클립보드 이미지 추가 (최대 크기: 500 MB)