프로젝트

일반

사용자정보

개정판 3d842083

ID3d84208350040f43fd4b6aaee1421bde710312ae
상위 e3868e50
하위 c9b2becf

이지연이(가) 약 3년 전에 추가함

issue #000: 매뉴얼 수정, 다른 DB에 저장 (mssql, sqlite) 추가, Reset 기능 추가

Change-Id: Id97268f82311e87a4c815da5f04be1b972abf9b6

차이점 보기:

DTI_PID/ID2PSN/DB.cs
1148 1148
            param.Value = Value;
1149 1149
            cmd.Parameters.Add(param);
1150 1150
        }
1151

  
1151
             
1152 1152
        public static bool SavePSNData(PSN item)
1153 1153
        {
1154 1154
            ID2Info id2Info = ID2Info.GetInstance();
......
1912 1912

  
1913 1913
            return dt;
1914 1914
        }
1915

  
1916
        //Anohter DB
1917
        public static bool ConnTestAndCreateAnotherTable()
1918
        {
1919
            bool result = false;
1920
            AnotherID2Info id2Info = AnotherID2Info.GetInstance();
1921

  
1922
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1923
            {
1924
                try
1925
                {
1926
                    var names = connection.GetTableNames();
1927
                    var matched = names.FirstOrDefault(param => param == PSN_HEADER_SETTING);
1928
                    Dictionary<string, string> dicColCheck = new Dictionary<string, string>();
1929
                    dicColCheck.Add("GROUP_ID", "TEXT");
1930
                    dicColCheck.Add("DESCRIPTION", "TEXT");
1931
                    dicColCheck.Add("INDEX", "INTEGER");
1932
                    dicColCheck.Add("NAME", "TEXT");
1933

  
1934
                    if (matched == null)
1935
                    {
1936
                        var query = $"CREATE TABLE {PSN_HEADER_SETTING} (GROUP_ID TEXT, DESCRIPTION TEXT, [INDEX] INTEGER, NAME TEXT)";
1937
                        using (var cmd = connection.GetSqlStringCommand(query))
1938
                        {
1939
                            cmd.ExecuteNonQuery();
1940
                        }
1941
                    }
1942
                    else
1943
                    {
1944
                        AddColumn(PSN_HEADER_SETTING, dicColCheck);
1945
                    }
1946

  
1947
                    matched = names.FirstOrDefault(param => param == PSN_VENTDRAIN_SETTING);
1948
                    dicColCheck.Clear();
1949
                    dicColCheck.Add("GROUP_ID", "TEXT");
1950
                    dicColCheck.Add("DESCRIPTION", "TEXT");
1951
                    dicColCheck.Add("INDEX", "INTEGER");
1952
                    dicColCheck.Add("NAME", "TEXT");
1953
                    if (matched == null)
1954
                    {
1955
                        var query = $"CREATE TABLE {PSN_VENTDRAIN_SETTING} (GROUP_ID TEXT, DESCRIPTION TEXT, [INDEX] INTEGER, NAME TEXT)";
1956
                        using (var cmd = connection.GetSqlStringCommand(query))
1957
                        {
1958
                            cmd.ExecuteNonQuery();
1959
                        }
1960
                    }
1961
                    else
1962
                    {
1963
                        AddColumn(PSN_VENTDRAIN_SETTING, dicColCheck);
1964
                    }
1965

  
1966
                    matched = names.FirstOrDefault(param => param == PSN_TOPOLOGY_RULE);
1967
                    dicColCheck.Clear();
1968
                    dicColCheck.Add("UID", "TEXT");
1969
                    if (matched == null)
1970
                    {
1971
                        var query = $"CREATE TABLE {PSN_TOPOLOGY_RULE} (UID TEXT)";
1972
                        using (var cmd = connection.GetSqlStringCommand(query))
1973
                        {
1974
                            cmd.ExecuteNonQuery();
1975
                        }
1976

  
1977
                        DataTable topologyRule = new DataTable();
1978
                        topologyRule.Columns.Add("NAME", typeof(string));
1979

  
1980
                        topologyRule.Rows.Add("FluidCode");
1981
                        topologyRule.Rows.Add("-");
1982
                        topologyRule.Rows.Add("PipingMaterialsClass");
1983
                        topologyRule.Rows.Add("-");
1984
                        topologyRule.Rows.Add("Tag Seq No");
1985

  
1986
                        SaveTopologyRule(topologyRule);
1987
                    }
1988
                    //else
1989
                    //{
1990
                    //    AddColumn(PSN_TOPOLOGY_RULE, dicColCheck);
1991
                    //}
1992

  
1993
                    matched = names.FirstOrDefault(param => param == PSN_PIPESYSTEMNETWORK);
1994
                    dicColCheck.Clear();
1995
                    dicColCheck.Add("OID", "NVARCHAR(255)");
1996
                    dicColCheck.Add("Type", "NVARCHAR(255)");
1997
                    dicColCheck.Add("OrderNumber", "NVARCHAR(255)");
1998
                    dicColCheck.Add("Pipeline_OID", "NVARCHAR(255)");
1999
                    dicColCheck.Add("From_Data", "NVARCHAR(255)");
2000
                    dicColCheck.Add("To_Data", "NVARCHAR(255)");
2001
                    dicColCheck.Add("TopologySet_OID_Key", "NVARCHAR(125)");
2002
                    dicColCheck.Add("PSNRevisionNumber", "NVARCHAR(255)");
2003
                    dicColCheck.Add("IsValid", "INT");
2004
                    dicColCheck.Add("Status", "NVARCHAR(255)");
2005
                    dicColCheck.Add("PBS", "NVARCHAR(255)");
2006
                    dicColCheck.Add("Drawings", "NVARCHAR(255)");
2007
                    dicColCheck.Add("IncludingVirtualData", "NVARCHAR(10)");
2008
                    dicColCheck.Add("PSNAccuracy", "REAL");
2009

  
2010
                    if (matched == null)
2011
                    {
2012
                        var query = $"CREATE TABLE {PSN_PIPESYSTEMNETWORK} (OID NVARCHAR(255), Type NVARCHAR(255), OrderNumber NVARCHAR(255), Pipeline_OID NVARCHAR(255), From_Data NVARCHAR(255), " +
2013
                            "To_Data NVARCHAR(255), TopologySet_OID_Key NVARCHAR(125), PSNRevisionNumber NVARCHAR(255), IsValid INTEGER, Status NVARCHAR(255), PBS NVARCHAR(255), Drawings NVARCHAR(255), " +
2014
                            "IncludingVirtualData NVARCHAR(10),  PSNAccuracy REAL)";
2015
                        using (var cmd = connection.GetSqlStringCommand(query))
2016
                        {
2017
                            cmd.ExecuteNonQuery();
2018
                        }
2019
                    }
2020
                    else
2021
                    {
2022
                        AddColumn(PSN_PIPESYSTEMNETWORK, dicColCheck);
2023
                    }
2024

  
2025
                    matched = names.FirstOrDefault(param => param == PSN_EQUIPMENT);
2026
                    dicColCheck.Clear();
2027
                    dicColCheck.Add("OID", "NVARCHAR(255)");
2028
                    dicColCheck.Add("ItemTag", "NVARCHAR(255)");
2029
                    dicColCheck.Add("Xcoords", "REAL");
2030
                    dicColCheck.Add("Ycoords", "REAL");
2031
                    if (matched == null)
2032
                    {
2033
                        var query = $"CREATE TABLE {PSN_EQUIPMENT} (OID NVARCHAR(255), ItemTag NVARCHAR(255), Xcoords REAL, Ycoords REAL)";
2034
                        using (var cmd = connection.GetSqlStringCommand(query))
2035
                        {
2036
                            cmd.ExecuteNonQuery();
2037
                        }
2038
                    }
2039
                    else
2040
                    {
2041
                        AddColumn(PSN_EQUIPMENT, dicColCheck);
2042
                    }
2043

  
2044
                    dicColCheck.Clear();
2045
                    dicColCheck.Add("OID", "NVARCHAR(255)");
2046
                    dicColCheck.Add("ItemTag", "NVARCHAR(255)");
2047
                    dicColCheck.Add("Xcoords", "REAL");
2048
                    dicColCheck.Add("Ycoords", "REAL");
2049
                    dicColCheck.Add("Equipment_OID", "NVARCHAR(255)");
2050
                    dicColCheck.Add("Fluid", "NVARCHAR(255)");
2051
                    dicColCheck.Add("NPD", "NVARCHAR(255)");
2052
                    dicColCheck.Add("PMC", "NVARCHAR(255)");
2053
                    dicColCheck.Add("Rotation", "REAL");
2054
                    dicColCheck.Add("FlowDirection", "NVARCHAR(255)");
2055

  
2056
                    matched = names.FirstOrDefault(param => param == PSN_NOZZLE);
2057
                    if (matched == null)
2058
                    {
2059
                        var query = $"CREATE TABLE {PSN_NOZZLE} (OID NVARCHAR(255), ItemTag NVARCHAR(255), Xcoords REAL, Ycoords REAL, Equipment_OID NVARCHAR(255), " +
2060
                            "Fluid NVARCHAR(255), NPD NVARCHAR(255), PMC NVARCHAR(255), Rotation REAL, FlowDirection NVARCHAR(255))";
2061
                        using (var cmd = connection.GetSqlStringCommand(query))
2062
                        {
2063
                            cmd.ExecuteNonQuery();
2064
                        }
2065
                    }
2066
                    else
2067
                    {
2068
                        AddColumn(PSN_NOZZLE, dicColCheck);
2069
                    }
2070

  
2071
                    matched = names.FirstOrDefault(param => param == PSN_FLUIDCODE);
2072
                    dicColCheck.Clear();
2073
                    dicColCheck.Add("UID", "NVARCHAR(50)");
2074
                    dicColCheck.Add("Code", "NVARCHAR(255)");
2075
                    dicColCheck.Add("Description", "NVARCHAR(255)");
2076
                    dicColCheck.Add("Condition", "NVARCHAR(255)");
2077
                    dicColCheck.Add("Remarks", "NVARCHAR(255)");
2078
                    dicColCheck.Add("GroundLevel", "NVARCHAR(20)");
2079
                    if (matched == null)
2080
                    {
2081
                        var query = $"CREATE TABLE {PSN_FLUIDCODE} (UID NVARCHAR(50), Code NVARCHAR(255), Description NVARCHAR(255), Condition NVARCHAR(255), Remarks NVARCHAR(255), GroundLevel NVARCHAR(20))";
2082
                        using (var cmd = connection.GetSqlStringCommand(query))
2083
                        {
2084
                            cmd.ExecuteNonQuery();
2085
                        }
2086
                    }
2087
                    else
2088
                    {
2089
                        AddColumn(PSN_FLUIDCODE, dicColCheck);
2090
                    }
2091

  
2092
                    matched = names.FirstOrDefault(param => param == PSN_PIPINGMATLCLASS);
2093
                    dicColCheck.Clear();
2094
                    dicColCheck.Add("UID", "NVARCHAR(50)");
2095
                    dicColCheck.Add("Priority", "INTEGER");
2096
                    dicColCheck.Add("Code", "NVARCHAR(255)");
2097
                    dicColCheck.Add("Description", "NVARCHAR(255)");
2098
                    dicColCheck.Add("Condition", "NVARCHAR(255)");
2099
                    dicColCheck.Add("Remarks", "NVARCHAR(255)");
2100
                    dicColCheck.Add("GroundLevel", "NVARCHAR(20)");
2101
                    if (matched == null)
2102
                    {
2103
                        var query = $"CREATE TABLE {PSN_PIPINGMATLCLASS} (UID NVARCHAR(50), Priority INTEGER, Code NVARCHAR(255), Description NVARCHAR(255), Condition NVARCHAR(255), Remarks NVARCHAR(255), GroundLevel NVARCHAR(20))";
2104
                        using (var cmd = connection.GetSqlStringCommand(query))
2105
                        {
2106
                            cmd.ExecuteNonQuery();
2107
                        }
2108
                    }
2109
                    else
2110
                    {
2111
                        AddColumn(PSN_PIPINGMATLCLASS, dicColCheck);
2112
                    }
2113

  
2114
                    matched = names.FirstOrDefault(param => param == PSN_SEQUENCEDATA);
2115
                    dicColCheck.Clear();
2116
                    dicColCheck.Add("OID", "NVARCHAR(255)");
2117
                    dicColCheck.Add("SERIALNUMBER", "NVARCHAR(255)");
2118
                    dicColCheck.Add("PathItem_OID", "NVARCHAR(255)");
2119
                    dicColCheck.Add("TopologySet_OID_Key", "NVARCHAR(255)");
2120
                    if (matched == null)
2121
                    {
2122
                        var query = $"CREATE TABLE {PSN_SEQUENCEDATA} (OID NVARCHAR(255), SERIALNUMBER NVARCHAR(255), PathItem_OID NVARCHAR(255), TopologySet_OID_Key NVARCHAR(255))";
2123
                        using (var cmd = connection.GetSqlStringCommand(query))
2124
                        {
2125
                            cmd.ExecuteNonQuery();
2126
                        }
2127
                    }
2128
                    else
2129
                    {
2130
                        AddColumn(PSN_SEQUENCEDATA, dicColCheck);
2131
                    }
2132

  
2133
                    matched = names.FirstOrDefault(param => param == PSN_PATHITEMS);
2134
                    dicColCheck.Clear();
2135
                    dicColCheck.Add("OID", "NVARCHAR(255)");
2136
                    dicColCheck.Add("SequenceData_OID", "NVARCHAR(255)");
2137
                    dicColCheck.Add("TopologySet_OID", "NVARCHAR(255)");
2138
                    dicColCheck.Add("BranchTopologySet_OID", "NVARCHAR(255)");
2139
                    dicColCheck.Add("PipeLine_OID", "NVARCHAR(255)");
2140
                    dicColCheck.Add("ItemName", "NVARCHAR(255)");
2141
                    dicColCheck.Add("ItemTag", "NVARCHAR(255)");
2142
                    dicColCheck.Add("DESCRIPTION", "NVARCHAR(255)");
2143
                    dicColCheck.Add("CLASS", "NVARCHAR(255)");
2144
                    dicColCheck.Add("SUBCLASS", "NVARCHAR(255)");
2145
                    dicColCheck.Add("TYPE", "NVARCHAR(255)");
2146
                    dicColCheck.Add("PIDNAME", "NVARCHAR(255)");
2147
                    dicColCheck.Add("Equipment_OID", "NVARCHAR(255)");
2148
                    dicColCheck.Add("NPD", "NVARCHAR(255)");
2149
                    dicColCheck.Add("PipeSystemNetwork_OID", "NVARCHAR(255)");
2150
                    dicColCheck.Add("PipeRun_OID", "NVARCHAR(255)");
2151
                    dicColCheck.Add("ViewPipeSystemNetwork_OID", "NVARCHAR(255)");
2152
                    if (matched == null)
2153
                    {
2154
                        var query = $"CREATE TABLE {PSN_PATHITEMS} (OID NVARCHAR(255), SequenceData_OID NVARCHAR(255), " +
2155
                            "TopologySet_OID NVARCHAR(255), BranchTopologySet_OID NVARCHAR(255), PipeLine_OID NVARCHAR(255), ItemName NVARCHAR(255), ItemTag NVARCHAR(255), DESCRIPTION NVARCHAR(255), " +
2156
                            "CLASS NVARCHAR(255), SUBCLASS NVARCHAR(255), TYPE NVARCHAR(255), PIDNAME NVARCHAR(255), Equipment_OID NVARCHAR(255), NPD NVARCHAR(255), PipeSystemNetwork_OID NVARCHAR(255), PipeRun_OID NVARCHAR(255), " +
2157
                            "ViewPipeSystemNetwork_OID NVARCHAR(255))";
2158
                        using (var cmd = connection.GetSqlStringCommand(query))
2159
                        {
2160
                            cmd.ExecuteNonQuery();
2161
                        }
2162
                    }
2163
                    else
2164
                    {
2165
                        AddColumn(PSN_PATHITEMS, dicColCheck);
2166
                    }
2167

  
2168
                    matched = names.FirstOrDefault(param => param == PSN_VIEW);
2169
                    dicColCheck.Clear();
2170
                    dicColCheck.Add("OID", "TEXT");
2171
                    if (matched == null)
2172
                    {
2173
                        var query = $"CREATE TABLE {PSN_VIEW} (OID TEXT)";
2174
                        using (var cmd = connection.GetSqlStringCommand(query))
2175
                        {
2176
                            cmd.ExecuteNonQuery();
2177
                        }
2178
                    }
2179

  
2180
                    matched = names.FirstOrDefault(param => param == PSN_TOPOLOGYSET);
2181
                    dicColCheck.Clear();
2182
                    dicColCheck.Add("OID", "NVARCHAR(255)");
2183
                    dicColCheck.Add("Type", "NVARCHAR(255)");
2184
                    dicColCheck.Add("SubType", "NVARCHAR(255)");
2185
                    dicColCheck.Add("HeadItemTag", "NVARCHAR(255)");
2186
                    dicColCheck.Add("TailItemTag", "NVARCHAR(255)");
2187
                    dicColCheck.Add("HeadItemSPID", "NVARCHAR(255)");
2188
                    dicColCheck.Add("TailItemSPID", "NVARCHAR(255)");
2189

  
2190
                    if (matched == null)
2191
                    {
2192
                        var query = $"CREATE TABLE { PSN_TOPOLOGYSET} (OID NVARCHAR(255), Type NVARCHAR(255), SubType NVARCHAR(255), HeadItemTag NVARCHAR(255), TailItemTag NVARCHAR(255), HeadItemSPID NVARCHAR(255), TailItemSPID NVARCHAR(255))";
2193
                        using (var cmd = connection.GetSqlStringCommand(query))
2194
                        {
2195
                            cmd.ExecuteNonQuery();
2196
                        }
2197
                    }
2198
                    else
2199
                    {
2200
                        AddColumn(PSN_TOPOLOGYSET, dicColCheck);
2201
                    }
2202

  
2203
                    matched = names.FirstOrDefault(param => param == PSN_TRANSFORMKEYWORD_SETTING);
2204
                    dicColCheck.Clear();
2205
                    dicColCheck.Add("[INDEX]", "INTEGER");
2206
                    dicColCheck.Add("[NAME]", "TEXT");
2207
                    dicColCheck.Add("[KEYWORD]", "TEXT");
2208
                    if (matched == null)
2209
                    {
2210
                        var query = $"CREATE TABLE {PSN_TRANSFORMKEYWORD_SETTING} ([INDEX] INTEGER, [NAME] TEXT, [KEYWORD] TEXT)";
2211
                        using (var cmd = connection.GetSqlStringCommand(query))
2212
                        {
2213
                            cmd.ExecuteNonQuery();
2214
                        }
2215
                    }
2216
                    else
2217
                    {
2218
                        AddColumn(PSN_TRANSFORMKEYWORD_SETTING, dicColCheck);
2219
                    }
2220

  
2221
                    matched = names.FirstOrDefault(param => param == PSN_PIPELINE);
2222
                    dicColCheck.Clear();
2223
                    dicColCheck.Add("OID", "NVARCHAR(255)");
2224
                    dicColCheck.Add("PipeSystem_OID", "NVARCHAR(255)");
2225
                    dicColCheck.Add("FLUID", "NVARCHAR(255)");
2226
                    dicColCheck.Add("PMC", "NVARCHAR(255)");
2227
                    dicColCheck.Add("SEQNUMBER", "NVARCHAR(255)");
2228
                    dicColCheck.Add("INSULATION", "NVARCHAR(255)");
2229
                    dicColCheck.Add("FROM_DATA", "NVARCHAR(255)");
2230
                    dicColCheck.Add("TO_DATA", "NVARCHAR(255)");
2231
                    dicColCheck.Add("Unit", "NVARCHAR(100)");
2232
                    if (matched == null)
2233
                    {
2234
                        var query = $"CREATE TABLE {PSN_PIPELINE} (OID NVARCHAR(255), PipeSystem_OID NVARCHAR(255), FLUID NVARCHAR(255), PMC NVARCHAR(255), SEQNUMBER NVARCHAR(255), INSULATION NVARCHAR(255), " +
2235
                            $"FROM_DATA NVARCHAR(255), TO_DATA NVARCHAR(255), Unit NVARCHAR(100))";
2236
                        using (var cmd = connection.GetSqlStringCommand(query))
2237
                        {
2238
                            cmd.ExecuteNonQuery();
2239
                        }
2240
                    }
2241
                    else
2242
                    {
2243
                        AddColumn(PSN_PIPELINE, dicColCheck);
2244
                    }
2245

  
2246
                    matched = names.FirstOrDefault(param => param == PSN_INSULATIONPURPOSE);
2247
                    dicColCheck.Clear();
2248
                    dicColCheck.Add("UID", "NVARCHAR(50)");
2249
                    dicColCheck.Add("Code", "NVARCHAR(255)");
2250
                    dicColCheck.Add("Description", "NVARCHAR(255)");
2251
                    dicColCheck.Add("Remarks", "NVARCHAR(255)");
2252
                    if (matched == null)
2253
                    {
2254
                        var query = $"CREATE TABLE {PSN_INSULATIONPURPOSE} (UID NVARCHAR(50), Code NVARCHAR(255), Description NVARCHAR(255), Remarks NVARCHAR(255))";
2255
                        using (var cmd = connection.GetSqlStringCommand(query))
2256
                        {
2257
                            cmd.ExecuteNonQuery();
2258
                        }
2259
                    }
2260
                    else
2261
                    {
2262
                        AddColumn(PSN_INSULATIONPURPOSE, dicColCheck);
2263
                    }
2264

  
2265
                    void AddColumn(string TableName, Dictionary<string, string> dicCol)
2266
                    {
2267
                        var colnames = connection.GetColumnNames(TableName);
2268
                        bool check = false;
2269
                        if (colnames != null)
2270
                        {
2271
                            foreach (KeyValuePair<string, string> col in dicCol)
2272
                            {
2273
                                check = false;
2274
                                foreach (string c in colnames)
2275
                                {
2276
                                    if (col.Key.Contains(c))
2277
                                    {
2278
                                        check = true;
2279
                                        break;
2280
                                    }
2281
                                }
2282

  
2283
                                if (!check) //없으면 추가
2284
                                {
2285
                                    string i = string.Empty;
2286
                                    if (col.Value.ToString().ToUpper().Contains("INT") || col.Value.ToString().ToUpper().Contains("REAL"))
2287
                                        i = "DEFAULT 0";
2288

  
2289
                                    var query = $"ALTER TABLE " + TableName + " ADD [" + col.Key + "] " + col.Value + " " + i + ";";
2290
                                    using (var cmd = connection.GetSqlStringCommand(query))
2291
                                    {
2292
                                        cmd.ExecuteNonQuery();
2293
                                    }
2294
                                }
2295
                            }
2296
                        }
2297
                    }
2298

  
2299
                    result = true;
2300
                }
2301
                catch (Exception ex)
2302
                {
2303
                    Log.Write(ex.Message + "\r\n" + ex.StackTrace);
2304
                }
2305
            }
2306

  
2307
            return result;
2308
        }
2309

  
2310
        public static bool SaveAnotherPSNData(PSN item, List<HeaderInfo> headerInfos, List<VentDrainInfo> ventDrainInfos,
2311
          List<KeywordItem> keywordItems, DataTable dtTopologyRule, DataTable dtFluidCode, DataTable dtPMC, DataTable dtInsulation)
2312
        {
2313
            AnotherID2Info id2Info = AnotherID2Info.GetInstance();
2314

  
2315
            bool result = true;
2316
            using (IAbstractDatabase connection = id2Info.CreateConnection())
2317
            {
2318
                try
2319
                {
2320
                    using (var txn = connection.BeginTransaction())
2321
                    {
2322
                        try
2323
                        {
2324
                            // Path Items
2325
                            var query = $"DELETE FROM {PSN_PATHITEMS}";
2326
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2327
                            for (int i = 0; i < item.PathItems.Rows.Count; i++)
2328
                            {
2329
                                DataRow row = item.PathItems.Rows[i];
2330
                                query = $"INSERT INTO {PSN_PATHITEMS} " +
2331
                                    $"(OID, SequenceData_OID, TopologySet_OID, BranchTopologySet_OID, PipeLine_OID, ItemName, ItemTag, DESCRIPTION, CLASS, SUBCLASS, TYPE, " +
2332
                                    $"PIDNAME, Equipment_OID, NPD, PipeSystemNetwork_OID, PipeRun_OID, ViewPipeSystemNetwork_OID) VALUES " +
2333
                                    $"(@OID, @SequenceData_OID, @TopologySet_OID, @BranchTopologySet_OID, @PipeLine_OID, @ITEMNAME, @ITEMTAG, @DESCRIPTION, @Class, @SubClass, @TYPE, @PIDNAME, @Equipment_OID, @NPD, @PipeSystemNetwork_OID,@PipeRun_OID, @ViewPipeSystemNetwork_OID)";
2334
                                var cmd = connection.GetSqlStringCommand(query);
2335
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
2336
                                AddWithValue(cmd, "@SequenceData_OID", string.IsNullOrEmpty(row["SequenceData_OID"].ToString()) ? "" : row["SequenceData_OID"].ToString());
2337
                                AddWithValue(cmd, "@TopologySet_OID", string.IsNullOrEmpty(row["TopologySet_OID"].ToString()) ? "" : row["TopologySet_OID"].ToString());
2338
                                AddWithValue(cmd, "@BranchTopologySet_OID", string.IsNullOrEmpty(row["BranchTopologySet_OID"].ToString()) ? "" : row["BranchTopologySet_OID"].ToString());
2339
                                AddWithValue(cmd, "@PipeLine_OID", string.IsNullOrEmpty(row["PipeLine_OID"].ToString()) ? "" : row["PipeLine_OID"].ToString());
2340
                                AddWithValue(cmd, "@ITEMNAME", string.IsNullOrEmpty(row["ITEMNAME"].ToString()) ? "" : row["ITEMNAME"].ToString());
2341
                                AddWithValue(cmd, "@ITEMTAG", string.IsNullOrEmpty(row["ITEMTAG"].ToString()) ? "" : row["ITEMTAG"].ToString());
2342
                                AddWithValue(cmd, "@DESCRIPTION", string.IsNullOrEmpty(row["DESCRIPTION"].ToString()) ? "" : row["DESCRIPTION"].ToString());
2343
                                AddWithValue(cmd, "@Class", string.IsNullOrEmpty(row["Class"].ToString()) ? "" : row["Class"].ToString());
2344
                                AddWithValue(cmd, "@SubClass", string.IsNullOrEmpty(row["SubClass"].ToString()) ? "" : row["SubClass"].ToString());
2345
                                AddWithValue(cmd, "@TYPE", string.IsNullOrEmpty(row["TYPE"].ToString()) ? "" : row["TYPE"].ToString());
2346
                                AddWithValue(cmd, "@PIDNAME", string.IsNullOrEmpty(row["PIDNAME"].ToString()) ? "" : row["PIDNAME"].ToString());
2347
                                AddWithValue(cmd, "@Equipment_OID", string.IsNullOrEmpty(row["Equipment_OID"].ToString()) ? "" : row["Equipment_OID"].ToString());
2348
                                AddWithValue(cmd, "@NPD", string.IsNullOrEmpty(row["NPD"].ToString()) ? "" : row["NPD"].ToString());
2349
                                AddWithValue(cmd, "@PipeSystemNetwork_OID", string.IsNullOrEmpty(row["PipeSystemNetwork_OID"].ToString()) ? "" : row["PipeSystemNetwork_OID"].ToString());
2350
                                AddWithValue(cmd, "@ViewPipeSystemNetwork_OID", string.IsNullOrEmpty(row["ViewPipeSystemNetwork_OID"].ToString()) ? "" : row["ViewPipeSystemNetwork_OID"].ToString());
2351
                                AddWithValue(cmd, "@PipeRun_OID", string.IsNullOrEmpty(row["PipeRun_OID"].ToString()) ? "" : row["PipeRun_OID"].ToString());
2352
                                connection.ExecuteNonQuery(cmd, txn);
2353
                            }
2354

  
2355
                            // Sequence
2356
                            query = $"DELETE FROM {PSN_SEQUENCEDATA}";
2357
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2358
                            foreach (DataRow row in item.SequenceData.Rows)
2359
                            {
2360
                                query = $"INSERT INTO {PSN_SEQUENCEDATA} (OID, SERIALNUMBER, PathItem_OID, TopologySet_OID_Key) VALUES (@OID, @SERIALNUMBER, @PathItem_OID, @TopologySet_OID_Key)";
2361
                                var cmd = connection.GetSqlStringCommand(query);
2362
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
2363
                                AddWithValue(cmd, "@SERIALNUMBER", string.IsNullOrEmpty(row["SERIALNUMBER"].ToString()) ? "" : row["SERIALNUMBER"].ToString());
2364
                                AddWithValue(cmd, "@PathItem_OID", string.IsNullOrEmpty(row["PathItem_OID"].ToString()) ? "" : row["PathItem_OID"].ToString());
2365
                                AddWithValue(cmd, "@TopologySet_OID_Key", string.IsNullOrEmpty(row["TopologySet_OID_Key"].ToString()) ? "" : row["TopologySet_OID_Key"].ToString());
2366
                                connection.ExecuteNonQuery(cmd, txn);
2367
                            }
2368

  
2369
                            // Nozzle
2370
                            query = $"DELETE FROM {PSN_NOZZLE}";
2371
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2372
                            foreach (DataRow row in item.Nozzle.Rows)
2373
                            {
2374
                                query = $"INSERT INTO {PSN_NOZZLE} (OID, ItemTag, Xcoords, Ycoords, Equipment_OID, Fluid, NPD, PMC, Rotation, FlowDirection) VALUES (@OID, @ITEMTAG, @XCOORDS, @YCOORDS, @Equipment_OID, @FLUID, @NPD, @PMC, @ROTATION, @FlowDirection)";
2375
                                var cmd = connection.GetSqlStringCommand(query);
2376
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
2377
                                AddWithValue(cmd, "@ITEMTAG", string.IsNullOrEmpty(row["ITEMTAG"].ToString()) ? "" : row["ITEMTAG"].ToString());
2378

  
2379
                                if (string.IsNullOrEmpty(row["XCOORDS"].ToString()))
2380
                                    AddWithValue(cmd, "@XCOORDS", DBNull.Value);
2381
                                else
2382
                                    AddWithValue(cmd, "@XCOORDS", row["XCOORDS"].ToString());
2383

  
2384
                                if (string.IsNullOrEmpty(row["YCOORDS"].ToString()))
2385
                                    AddWithValue(cmd, "@YCOORDS", DBNull.Value);
2386
                                else
2387
                                    AddWithValue(cmd, "@YCOORDS", row["YCOORDS"].ToString());
2388

  
2389
                                AddWithValue(cmd, "@Equipment_OID", string.IsNullOrEmpty(row["Equipment_OID"].ToString()) ? "" : row["Equipment_OID"].ToString());
2390
                                AddWithValue(cmd, "@FLUID", string.IsNullOrEmpty(row["FLUID"].ToString()) ? "" : row["FLUID"].ToString());
2391
                                AddWithValue(cmd, "@NPD", string.IsNullOrEmpty(row["NPD"].ToString()) ? "" : row["NPD"].ToString());
2392
                                AddWithValue(cmd, "@PMC", string.IsNullOrEmpty(row["PMC"].ToString()) ? "" : row["PMC"].ToString());
2393

  
2394
                                if (string.IsNullOrEmpty(row["ROTATION"].ToString()))
2395
                                    AddWithValue(cmd, "@ROTATION", DBNull.Value);
2396
                                else
2397
                                    AddWithValue(cmd, "@ROTATION", row["ROTATION"].ToString());
2398

  
2399
                                AddWithValue(cmd, "@FlowDirection", string.IsNullOrEmpty(row["FlowDirection"].ToString()) ? "" : row["FlowDirection"].ToString());
2400
                                connection.ExecuteNonQuery(cmd, txn);
2401
                            }
2402

  
2403
                            //Equipment
2404
                            query = $"DELETE FROM {PSN_EQUIPMENT}";
2405
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2406
                            foreach (DataRow row in item.Equipment.Rows)
2407
                            {
2408
                                query = $"INSERT INTO {PSN_EQUIPMENT} (OID, ItemTag, Xcoords, Ycoords) VALUES (@OID, @ITEMTAG, @XCOORDS, @YCOORDS)";
2409
                                var cmd = connection.GetSqlStringCommand(query);
2410
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
2411
                                AddWithValue(cmd, "@ITEMTAG", string.IsNullOrEmpty(row["ITEMTAG"].ToString()) ? "" : row["ITEMTAG"].ToString());
2412

  
2413
                                if (string.IsNullOrEmpty(row["XCOORDS"].ToString()))
2414
                                    AddWithValue(cmd, "@XCOORDS", DBNull.Value);
2415
                                else
2416
                                    AddWithValue(cmd, "@XCOORDS", row["XCOORDS"].ToString());
2417

  
2418
                                if (string.IsNullOrEmpty(row["YCOORDS"].ToString()))
2419
                                    AddWithValue(cmd, "@YCOORDS", DBNull.Value);
2420
                                else
2421
                                    AddWithValue(cmd, "@YCOORDS", row["YCOORDS"].ToString());
2422

  
2423
                                connection.ExecuteNonQuery(cmd, txn);
2424
                            }
2425

  
2426
                            // TopologySet
2427
                            query = $"DELETE FROM {PSN_TOPOLOGYSET}";
2428
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2429
                            foreach (DataRow row in item.TopologySet.Rows)
2430
                            {
2431
                                query = $"INSERT INTO {PSN_TOPOLOGYSET} (OID, Type, SubType, HeadItemTag, TailItemTag, HeadItemSPID, TailItemSPID) VALUES (@OID, @Type, @SubType, @HeadItemTag, @TailItemTag, @HeadItemSPID, @TailItemSPID)";
2432
                                var cmd = connection.GetSqlStringCommand(query);
2433
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
2434
                                AddWithValue(cmd, "@Type", string.IsNullOrEmpty(row["Type"].ToString()) ? "" : row["Type"].ToString());
2435
                                AddWithValue(cmd, "@SubType", string.IsNullOrEmpty(row["SubType"].ToString()) ? "" : row["SubType"].ToString());
2436
                                AddWithValue(cmd, "@HeadItemTag", string.IsNullOrEmpty(row["HeadItemTag"].ToString()) ? "" : row["HeadItemTag"].ToString());
2437
                                AddWithValue(cmd, "@TailItemTag", string.IsNullOrEmpty(row["TailItemTag"].ToString()) ? "" : row["TailItemTag"].ToString());
2438
                                AddWithValue(cmd, "@HeadItemSPID", string.IsNullOrEmpty(row["HeadItemSPID"].ToString()) ? "" : row["HeadItemSPID"].ToString());
2439
                                AddWithValue(cmd, "@TailItemSPID", string.IsNullOrEmpty(row["TailItemSPID"].ToString()) ? "" : row["TailItemSPID"].ToString());
2440
                                connection.ExecuteNonQuery(cmd, txn);
2441
                            }
2442

  
2443
                            // PSN
2444
                            query = $"DELETE FROM {PSN_PIPESYSTEMNETWORK} WHERE PSNRevisionNumber = '{string.Format("V{0:D4}", item.Revision)}'";
2445
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2446
                            foreach (DataRow row in item.PipeSystemNetwork.Rows)
2447
                            {
2448
                                query = $"INSERT INTO {PSN_PIPESYSTEMNETWORK} " +
2449
                                    $"(OID, Type, OrderNumber, Pipeline_OID, FROM_DATA, TO_DATA, TopologySet_OID_Key, PSNRevisionNumber, PBS, Drawings, IsValid, Status, IncludingVirtualData, PSNAccuracy) VALUES " +
2450
                                    $"(@OID, @Type, @OrderNumber, @Pipeline_OID, @FROM_DATA, @TO_DATA, @TopologySet_OID_Key, @PSNRevisionNumber,  @PBS, @Drawings, @IsValid, @Status, @IncludingVirtualData, @PSNAccuracy)";
2451
                                var cmd = connection.GetSqlStringCommand(query);
2452
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
2453
                                AddWithValue(cmd, "@Type", string.IsNullOrEmpty(row["Type"].ToString()) ? "" : row["Type"].ToString());
2454
                                AddWithValue(cmd, "@OrderNumber", string.IsNullOrEmpty(row["OrderNumber"].ToString()) ? "" : row["OrderNumber"].ToString());
2455
                                AddWithValue(cmd, "@Pipeline_OID", string.IsNullOrEmpty(row["Pipeline_OID"].ToString()) ? "" : row["Pipeline_OID"].ToString());
2456
                                AddWithValue(cmd, "@FROM_DATA", string.IsNullOrEmpty(row["FROM_DATA"].ToString()) ? "" : row["FROM_DATA"].ToString());
2457
                                AddWithValue(cmd, "@TO_DATA", string.IsNullOrEmpty(row["TO_DATA"].ToString()) ? "" : row["TO_DATA"].ToString());
2458
                                AddWithValue(cmd, "@TopologySet_OID_Key", string.IsNullOrEmpty(row["TopologySet_OID_Key"].ToString()) ? "" : row["TopologySet_OID_Key"].ToString());
2459
                                AddWithValue(cmd, "@PSNRevisionNumber", string.IsNullOrEmpty(row["PSNRevisionNumber"].ToString()) ? "" : row["PSNRevisionNumber"].ToString());
2460

  
2461
                                int IsValid = 0;
2462
                                if (row["IsValid"].ToString() == string.Empty || row["IsValid"].ToString() == "OK")
2463
                                    IsValid = 0;
2464
                                else if (row["IsValid"].ToString() == "InValid")
2465
                                    IsValid = 1;
2466
                                else if (row["IsValid"].ToString() == "Error")
2467
                                    IsValid = -1;
2468

  
2469
                                AddWithValue(cmd, "@IsValid", IsValid);
2470
                                AddWithValue(cmd, "@Status", string.IsNullOrEmpty(row["Status"].ToString()) ? "" : row["Status"].ToString());
2471

  
2472
                                AddWithValue(cmd, "@PBS", string.IsNullOrEmpty(row["PBS"].ToString()) ? "" : row["PBS"].ToString());
2473
                                AddWithValue(cmd, "@Drawings", string.IsNullOrEmpty(row["Drawings"].ToString()) ? "" : row["Drawings"].ToString());
2474

  
2475
                                AddWithValue(cmd, "@IncludingVirtualData", string.IsNullOrEmpty(row["IncludingVirtualData"].ToString()) ? "" : row["IncludingVirtualData"].ToString());
2476
                                if (string.IsNullOrEmpty(row["PSNAccuracy"].ToString()))
2477
                                    AddWithValue(cmd, "@PSNAccuracy", DBNull.Value);
2478
                                else
2479
                                    AddWithValue(cmd, "@PSNAccuracy", row["PSNAccuracy"].ToString());
2480

  
2481
                                connection.ExecuteNonQuery(cmd, txn);
2482
                            }
2483

  
2484
                            //Pipeline
2485
                            query = $"DELETE FROM {PSN_PIPELINE}";
2486
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2487
                            foreach (DataRow row in item.PipeLine.Rows)
2488
                            {
2489
                                query = $"INSERT INTO {PSN_PIPELINE} (OID, PipeSystem_OID, FLUID, PMC, SEQNUMBER, INSULATION, FROM_DATA, TO_DATA, Unit) VALUES (@OID, @PipeSystem_OID, @FLUID, @PMC, @SEQNUMBER, @INSULATION, @FROM_DATA, @TO_DATA, @Unit)";
2490
                                var cmd = connection.GetSqlStringCommand(query);
2491
                                AddWithValue(cmd, "@OID", row["OID"].ToString());
2492
                                AddWithValue(cmd, "@PipeSystem_OID", row["PipeSystem_OID"].ToString());
2493
                                AddWithValue(cmd, "@FLUID", row["FLUID"].ToString());
2494
                                AddWithValue(cmd, "@PMC", row["PMC"].ToString());
2495
                                AddWithValue(cmd, "@SEQNUMBER", row["SEQNUMBER"].ToString());
2496
                                AddWithValue(cmd, "@INSULATION", row["INSULATION"].ToString());
2497
                                AddWithValue(cmd, "@FROM_DATA", row["FROM_DATA"].ToString());
2498
                                AddWithValue(cmd, "@TO_DATA", row["TO_DATA"].ToString());
2499
                                AddWithValue(cmd, "@Unit", row["Unit"].ToString());
2500
                                connection.ExecuteNonQuery(cmd, txn);
2501
                            }
2502

  
2503
                            //Header Setting
2504
                            query = $"DELETE FROM {PSN_HEADER_SETTING}";
2505
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2506

  
2507
                            foreach (HeaderInfo headerInfo in headerInfos)
2508
                            {
2509
                                foreach (HeaderItem itemheader in headerInfo.HeaderItems)
2510
                                {
2511
                                    query = $"INSERT INTO {PSN_HEADER_SETTING} (GROUP_ID, DESCRIPTION, [INDEX], NAME) VALUES (@GROUP_ID, @DESCRIPTION, @INDEX, @NAME)";
2512
                                    var cmd = connection.GetSqlStringCommand(query);
2513
                                    AddWithValue(cmd, "@GROUP_ID", headerInfo.UID);
2514
                                    AddWithValue(cmd, "@DESCRIPTION", headerInfo.Description);
2515
                                    AddWithValue(cmd, "@INDEX", itemheader.Index);
2516
                                    AddWithValue(cmd, "@NAME", itemheader.Name);
2517
                                    connection.ExecuteNonQuery(cmd, txn);
2518
                                }
2519
                            }
2520

  
2521
                            //Vent/Drain Setting
2522
                            query = $"DELETE FROM {PSN_VENTDRAIN_SETTING}";
2523
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2524

  
2525
                            foreach (VentDrainInfo ventDrainInfo in ventDrainInfos)
2526
                            {
2527
                                foreach (VentDrainItem itemventdrain in ventDrainInfo.VentDrainItems)
2528
                                {
2529
                                    query = $"INSERT INTO {PSN_VENTDRAIN_SETTING} (GROUP_ID, DESCRIPTION, [INDEX], NAME) VALUES (@GROUP_ID, @DESCRIPTION, @INDEX, @NAME)";
2530
                                    var cmd = connection.GetSqlStringCommand(query);
2531
                                    AddWithValue(cmd, "@GROUP_ID", ventDrainInfo.UID);
2532
                                    AddWithValue(cmd, "@DESCRIPTION", ventDrainInfo.Description);
2533
                                    AddWithValue(cmd, "@INDEX", itemventdrain.Index);
2534
                                    AddWithValue(cmd, "@NAME", itemventdrain.Name);
2535
                                    connection.ExecuteNonQuery(cmd, txn);
2536
                                }
2537
                            }
2538

  
2539
                            //Keyword Setting
2540
                            query = $"DELETE FROM {PSN_TRANSFORMKEYWORD_SETTING}";
2541
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2542

  
2543
                            foreach (KeywordItem itemKeyword in keywordItems)
2544
                            {
2545
                                query = $"INSERT INTO {PSN_TRANSFORMKEYWORD_SETTING} ([INDEX], NAME, KEYWORD) VALUES (@INDEX, @NAME, @KEYWORD)";
2546
                                var cmd = connection.GetSqlStringCommand(query);
2547
                                AddWithValue(cmd, "@INDEX", itemKeyword.Index);
2548
                                AddWithValue(cmd, "@NAME", itemKeyword.Name);
2549
                                AddWithValue(cmd, "@KEYWORD", itemKeyword.Keyword);
2550
                                connection.ExecuteNonQuery(cmd, txn);
2551
                            }
2552

  
2553
                            //FulidCode
2554
                            query = $"DELETE FROM {PSN_FLUIDCODE}";
2555
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2556

  
2557
                            foreach (DataRow row in dtFluidCode.Rows)
2558
                            {
2559
                                query = $"INSERT INTO {PSN_FLUIDCODE} (UID, Code, Description, Condition, Remarks, GroundLevel) VALUES (@UID, @Code, @Description, @Condition, @Remarks, @GroundLevel)";
2560
                                var cmd = connection.GetSqlStringCommand(query);
2561
                                cmd.Parameters.Clear();
2562

  
2563
                                {
2564
                                    var param = cmd.CreateParameter();
2565
                                    param.ParameterName = "@UID";
2566
                                    param.Value = row["UID"].ToString();
2567
                                    cmd.Parameters.Add(param);
2568
                                }
2569

  
2570
                                {
2571
                                    var param = cmd.CreateParameter();
2572
                                    param.ParameterName = "@Code";
2573
                                    param.Value = row["Code"].ToString();
2574
                                    cmd.Parameters.Add(param);
2575
                                }
2576

  
2577
                                {
2578
                                    var param = cmd.CreateParameter();
2579
                                    param.ParameterName = "@Description";
2580
                                    param.Value = row["Description"].ToString();
2581
                                    cmd.Parameters.Add(param);
2582
                                }
2583

  
2584
                                {
2585
                                    var param = cmd.CreateParameter();
2586
                                    param.ParameterName = "@Condition";
2587
                                    param.Value = row["Condition"].ToString();
2588
                                    cmd.Parameters.Add(param);
2589
                                }
2590

  
2591
                                {
2592
                                    var param = cmd.CreateParameter();
2593
                                    param.ParameterName = "@Remarks";
2594
                                    param.Value = row["Remarks"].ToString();
2595
                                    cmd.Parameters.Add(param);
2596
                                }
2597

  
2598
                                {
2599
                                    var param = cmd.CreateParameter();
2600
                                    param.ParameterName = "@GroundLevel";
2601
                                    param.Value = row["GroundLevel"].ToString();
2602
                                    cmd.Parameters.Add(param);
2603
                                }
2604

  
2605
                                connection.ExecuteNonQuery(cmd, txn);
2606
                            }
2607

  
2608
                            //PMC
2609
                            query = $"DELETE FROM {PSN_PIPINGMATLCLASS}";
2610
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2611

  
2612
                            foreach (DataRow row in dtPMC.Rows)
2613
                            {
2614
                                query = $"INSERT INTO {PSN_PIPINGMATLCLASS} ( UID, Priority, Code, Description, Condition, Remarks, GroundLevel) VALUES (@UID, @Priority, @Code, @Description, @Condition, @Remarks, @GroundLevel)";
2615
                                var cmd = connection.GetSqlStringCommand(query);
2616
                                cmd.Parameters.Clear();
2617

  
2618
                                {
2619
                                    var param = cmd.CreateParameter();
2620
                                    param.ParameterName = "@UID";
2621
                                    param.Value = row["UID"].ToString();
2622
                                    cmd.Parameters.Add(param);
2623
                                }
2624

  
2625
                                {
2626
                                    var param = cmd.CreateParameter();
2627
                                    param.ParameterName = "@Priority";
2628
                                    param.Value = row["Priority"].ToString();
2629
                                    cmd.Parameters.Add(param);
2630
                                }
2631

  
2632
                                {
2633
                                    var param = cmd.CreateParameter();
2634
                                    param.ParameterName = "@Code";
2635
                                    param.Value = row["Code"].ToString();
2636
                                    cmd.Parameters.Add(param);
2637
                                }
2638

  
2639
                                {
2640
                                    var param = cmd.CreateParameter();
2641
                                    param.ParameterName = "@Description";
2642
                                    param.Value = row["Description"].ToString();
2643
                                    cmd.Parameters.Add(param);
2644
                                }
2645

  
2646
                                {
2647
                                    var param = cmd.CreateParameter();
2648
                                    param.ParameterName = "@Condition";
2649
                                    param.Value = row["Condition"].ToString();
2650
                                    cmd.Parameters.Add(param);
2651
                                }
2652

  
2653
                                {
2654
                                    var param = cmd.CreateParameter();
2655
                                    param.ParameterName = "@Remarks";
2656
                                    param.Value = row["Remarks"].ToString();
2657
                                    cmd.Parameters.Add(param);
2658
                                }
2659

  
2660
                                {
2661
                                    var param = cmd.CreateParameter();
2662
                                    param.ParameterName = "@GroundLevel";
2663
                                    param.Value = row["GroundLevel"].ToString();
2664
                                    cmd.Parameters.Add(param);
2665
                                }
2666

  
2667
                                connection.ExecuteNonQuery(cmd, txn);
2668
                            }
2669

  
2670
                            //Insulation
2671
                            query = $"DELETE FROM {PSN_INSULATIONPURPOSE}";
2672
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2673

  
2674
                            foreach (DataRow row in dtInsulation.Rows)
2675
                            {
2676
                                query = $"INSERT INTO {PSN_INSULATIONPURPOSE} (UID, Code, Description, Remarks) VALUES (@UID, @Code, @Description, @Remarks)";
2677
                                var cmd = connection.GetSqlStringCommand(query);
2678
                                cmd.Parameters.Clear();
2679

  
2680
                                {
2681
                                    var param = cmd.CreateParameter();
2682
                                    param.ParameterName = "@UID";
2683
                                    param.Value = row["UID"].ToString();
2684
                                    cmd.Parameters.Add(param);
2685
                                }
2686

  
2687
                                {
2688
                                    var param = cmd.CreateParameter();
2689
                                    param.ParameterName = "@Code";
2690
                                    param.Value = row["Code"].ToString();
2691
                                    cmd.Parameters.Add(param);
2692
                                }
2693

  
2694
                                {
2695
                                    var param = cmd.CreateParameter();
2696
                                    param.ParameterName = "@Description";
2697
                                    param.Value = row["Description"].ToString();
2698
                                    cmd.Parameters.Add(param);
2699
                                }
2700

  
2701
                                {
2702
                                    var param = cmd.CreateParameter();
2703
                                    param.ParameterName = "@Remarks";
2704
                                    param.Value = row["Remarks"].ToString();
2705
                                    cmd.Parameters.Add(param);
2706
                                }
2707

  
2708
                                connection.ExecuteNonQuery(cmd, txn);
2709
                            }
2710

  
2711
                            //Topology Rule
2712
                            query = $"DELETE FROM {PSN_TOPOLOGY_RULE}";
2713
                            var cmdtopology = connection.GetSqlStringCommand(query);
2714
                            //connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
2715
                            connection.ExecuteNonQuery(cmdtopology, txn);
2716

  
2717
                            foreach (DataRow row in dtTopologyRule.Rows)
2718
                            {
2719
                                query = $"INSERT INTO {PSN_TOPOLOGY_RULE} (UID) VALUES (@UID)";
2720
                                cmdtopology = connection.GetSqlStringCommand(query);
2721
                                AddWithValue(cmdtopology, "@UID", row["UID"].ToString());
2722
                                connection.ExecuteNonQuery(cmdtopology, txn);
2723
                            }
2724

  
2725
                            txn.Commit();
2726
                        }
2727
                        catch (Exception ex)
2728
                        {
2729
                            txn.Rollback();
2730
                            result = false;
2731
                        }
2732
                    }
2733
                }
2734
                catch (Exception ex)
2735
                {
2736
                    System.Windows.Forms.MessageBox.Show(ex.Message);
2737
                    result = false;
2738
                }
2739
            }
2740

  
2741
            return result;
2742
        }
1915 2743
    }
1916 2744
}

내보내기 Unified diff