From bd2c873a725ed9b9909f04b66378be83665d9032 Mon Sep 17 00:00:00 2001 From: ulysseskao <ulysseskao@gmail.com> Date: Tue, 03 May 2016 19:33:00 +0800 Subject: [PATCH] refactor code --- CCSTrace/CCS/Object/AddrContrast.cs | 210 ++++++++++++++++++++++++++-------------------------- 1 files changed, 105 insertions(+), 105 deletions(-) diff --git a/CCSTrace/CCS/Object/Addr_Contrast.cs b/CCSTrace/CCS/Object/AddrContrast.cs similarity index 86% rename from CCSTrace/CCS/Object/Addr_Contrast.cs rename to CCSTrace/CCS/Object/AddrContrast.cs index 2e60d5b..20d5084 100644 --- a/CCSTrace/CCS/Object/Addr_Contrast.cs +++ b/CCSTrace/CCS/Object/AddrContrast.cs @@ -1,106 +1,106 @@ -using System; - -using System.Collections; -using System.Collections.Generic; -using System.Data.OracleClient; -using CCSTrace.TPower.DMMS.Model.CCS; -using NLog; - -namespace CCSTrace.CCS.Object -{ - public class AddrContrast - { - private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - - public const string DefaultDept = "市區巡修課"; - - public static AddrContrast Instance { get; } = new AddrContrast(); - - private Dictionary<string, List<ADDRCONTRAST>> totalAddrData = null; - - private AddrContrast() - { - } - - public void initialize(OracleConnection conn) - { - - if (totalAddrData != null) - return; - - totalAddrData = new Dictionary<string, List<ADDRCONTRAST>>(); - - var sqlStmt = "SELECT DEPTID,CITY,TOWN,ROAD FROM CCS.ADDR_CONTRAST ORDER BY CITY,TOWN,ROAD"; - - OracleCommand command = null; - OracleDataReader reader = null; - try - { - command = new OracleCommand(sqlStmt, conn); - reader = command.ExecuteReader(); - - List<ADDRCONTRAST> addrcontrasts = new List<ADDRCONTRAST>(); - string tmp = ""; - - while (reader.Read()) - { - ArrayList mRecord = new ArrayList(); - ADDRCONTRAST item = new ADDRCONTRAST - { - CITY = reader["CITY"].ToString(), - TOWN = reader["TOWN"].ToString(), - ROAD = reader["ROAD"].ToString(), - DEPTID = Convert.ToInt32(reader["DEPTID"].ToString()) - }; - - - if (tmp.Equals(item.CITY)) - { - addrcontrasts.Add(item); - } - else - { - totalAddrData.Add(tmp, addrcontrasts); - tmp = item.CITY; - addrcontrasts = new List<ADDRCONTRAST> { item }; - } - } - totalAddrData.Add(tmp, addrcontrasts); - } - catch (Exception e) - { - Logger.Warn(e, e.Message); - totalAddrData = null; - } - finally - { - reader?.Close(); - command?.Dispose(); - } - } - - public int FindDeptId(string city, string region, string road) - { - var addrcontrasts = totalAddrData[city]; - - try - { - foreach (ADDRCONTRAST tmp in addrcontrasts) - { - if (region.Trim().Equals(tmp.TOWN) && road.Trim().Equals(tmp.ROAD)) - { - return tmp.DEPTID; - } - } - } - catch (Exception e) - { - Logger.Warn(e , e.Message); - Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!"); - } - // 當找不到部門別時,Default 設定為市巡 - var dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept); - return dept; - } - } +using System; + +using System.Collections; +using System.Collections.Generic; +using System.Data.OracleClient; +using CCSTrace.TPower.DMMS.Model.CCS; +using NLog; + +namespace CCSTrace.CCS.Object +{ + public class AddrContrast + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + public const string DefaultDept = "市區巡修課"; + + public static AddrContrast Instance { get; } = new AddrContrast(); + + private Dictionary<string, List<ADDRCONTRAST>> _totalAddrData = null; + + private AddrContrast() + { + } + + public void Initialize(OracleConnection conn) + { + + if (_totalAddrData != null) + return; + + _totalAddrData = new Dictionary<string, List<ADDRCONTRAST>>(); + + var sqlStmt = "SELECT DEPTID,CITY,TOWN,ROAD FROM CCS.ADDR_CONTRAST ORDER BY CITY,TOWN,ROAD"; + + OracleCommand command = null; + OracleDataReader reader = null; + try + { + command = new OracleCommand(sqlStmt, conn); + reader = command.ExecuteReader(); + + List<ADDRCONTRAST> addrcontrasts = new List<ADDRCONTRAST>(); + string tmp = ""; + + while (reader.Read()) + { + ArrayList mRecord = new ArrayList(); + ADDRCONTRAST item = new ADDRCONTRAST + { + CITY = reader["CITY"].ToString(), + TOWN = reader["TOWN"].ToString(), + ROAD = reader["ROAD"].ToString(), + DEPTID = Convert.ToInt32(reader["DEPTID"].ToString()) + }; + + + if (tmp.Equals(item.CITY)) + { + addrcontrasts.Add(item); + } + else + { + _totalAddrData.Add(tmp, addrcontrasts); + tmp = item.CITY; + addrcontrasts = new List<ADDRCONTRAST> { item }; + } + } + _totalAddrData.Add(tmp, addrcontrasts); + } + catch (Exception e) + { + Logger.Warn(e, e.Message); + _totalAddrData = null; + } + finally + { + reader?.Close(); + command?.Dispose(); + } + } + + public int FindDeptId(string city, string region, string road) + { + var addrcontrasts = _totalAddrData[city]; + + try + { + foreach (ADDRCONTRAST tmp in addrcontrasts) + { + if (region.Trim().Equals(tmp.TOWN) && road.Trim().Equals(tmp.ROAD)) + { + return tmp.DEPTID; + } + } + } + catch (Exception e) + { + Logger.Warn(e , e.Message); + Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!"); + } + // 當找不到部門別時,Default 設定為市巡 + var dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept); + return dept; + } + } } \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT