From 410dc2d04dbecf019129cd8cd65a3be2c62b4d0c Mon Sep 17 00:00:00 2001
From: ulysseskao <ulysseskao@gmail.com>
Date: Tue, 03 May 2016 18:36:41 +0800
Subject: [PATCH] refator code
---
CCSTrace/CCS/Object/Addr_Contrast.cs | 82 ++++++++++++++++++++++------------------
1 files changed, 45 insertions(+), 37 deletions(-)
diff --git a/CCSTrace/CCS/Object/Addr_Contrast.cs b/CCSTrace/CCS/Object/Addr_Contrast.cs
index 9d18779..2e60d5b 100644
--- a/CCSTrace/CCS/Object/Addr_Contrast.cs
+++ b/CCSTrace/CCS/Object/Addr_Contrast.cs
@@ -1,7 +1,9 @@
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
@@ -10,79 +12,85 @@
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
- public static Hashtable MTotalData = null;
- public static string DefaultDept = "市區巡修課";
- private OracleConnection _connectionTpc;
+ public const string DefaultDept = "市區巡修課";
- public AddrContrast(OracleConnection conn, OracleTransaction trx)
+ public static AddrContrast Instance { get; } = new AddrContrast();
+
+ private Dictionary<string, List<ADDRCONTRAST>> totalAddrData = null;
+
+ private AddrContrast()
{
- _connectionTpc = conn;
+ }
- ArrayList mData = new ArrayList();
- string tmp = "";
+ public void initialize(OracleConnection conn)
+ {
- if (MTotalData != null)
+ if (totalAddrData != null)
return;
- MTotalData = new Hashtable();
+ 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, _connectionTpc, trx);
+ command = new OracleCommand(sqlStmt, conn);
reader = command.ExecuteReader();
+
+ List<ADDRCONTRAST> addrcontrasts = new List<ADDRCONTRAST>();
+ string tmp = "";
while (reader.Read())
{
ArrayList mRecord = new ArrayList();
- var city = reader["CITY"].ToString();
- mRecord.Add(city);
- mRecord.Add(reader["TOWN"].ToString());
- mRecord.Add(reader["ROAD"].ToString());
- mRecord.Add(Convert.ToInt32(reader["DEPTID"].ToString()));
+ 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(city))
- mData.Add(mRecord);
+
+ if (tmp.Equals(item.CITY))
+ {
+ addrcontrasts.Add(item);
+ }
else
{
- MTotalData.Add(tmp, mData);
- tmp = city;
- mData = new ArrayList();
- mData.Add(mRecord);
+ totalAddrData.Add(tmp, addrcontrasts);
+ tmp = item.CITY;
+ addrcontrasts = new List<ADDRCONTRAST> { item };
}
}
- MTotalData.Add(tmp, mData);
+ totalAddrData.Add(tmp, addrcontrasts);
}
catch (Exception e)
{
- Console.WriteLine(e.StackTrace);
- MTotalData = null;
+ Logger.Warn(e, e.Message);
+ totalAddrData = null;
}
finally
{
- reader.Close();
- command.Dispose();
+ reader?.Close();
+ command?.Dispose();
}
}
public int FindDeptId(string city, string region, string road)
{
- int dept = 0;
- ArrayList mData = (ArrayList)MTotalData[city];
+ var addrcontrasts = totalAddrData[city];
try
{
- for (int i = 0; i < mData.Count; i++)
+ foreach (ADDRCONTRAST tmp in addrcontrasts)
{
- ArrayList tmp = (ArrayList)mData[i];
- string mRegion = tmp[1].ToString().Trim();
- string mRoad = tmp[2].ToString().Trim();
- int deptId = Convert.ToInt32(tmp[3].ToString());
-
- if ((region.Trim().Equals(mRegion)) && (road.Trim().Equals(mRoad)))
- return deptId;
+ if (region.Trim().Equals(tmp.TOWN) && road.Trim().Equals(tmp.ROAD))
+ {
+ return tmp.DEPTID;
+ }
}
}
catch (Exception e)
@@ -91,7 +99,7 @@
Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!");
}
// 當找不到部門別時,Default 設定為市巡
- dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
+ var dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
return dept;
}
}
--
Gitblit v0.0.0-SNAPSHOT