From b0c18d369abd06075c83759b0e19823c2a11d716 Mon Sep 17 00:00:00 2001 From: ulysseskao <ulysseskao@gmail.com> Date: Fri, 29 Apr 2016 18:45:41 +0800 Subject: [PATCH] update for new model --- CCSTrace/CCS/Object/CCSCodelist.cs | 178 +++++++++++++++++++++++------------------------------------ 1 files changed, 69 insertions(+), 109 deletions(-) diff --git a/CCSTrace/CCS/Object/CCSCodelist.cs b/CCSTrace/CCS/Object/CCSCodelist.cs index 3145cd8..48cd876 100644 --- a/CCSTrace/CCS/Object/CCSCodelist.cs +++ b/CCSTrace/CCS/Object/CCSCodelist.cs @@ -1,160 +1,120 @@ using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.HtmlControls; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; using System.Collections; +using System.Collections.Generic; using System.Data.OracleClient; +using System.Linq; +using CCSTrace.CCS.Domain; namespace CCSTrace.CCS.Object { - public class CCSCodelist + public class CcsCodelist { - private Hashtable m_TotalData = new Hashtable(); - private int KeyID = 1; - private int Item = 2; - private int Content = 3; + private readonly Dictionary<int, Dictionary<int, Codelist>> _mTotalData = new Dictionary<int, Dictionary<int, Codelist>>(); - public CCSCodelist(OracleConnection _ConnectionTPC) + public CcsCodelist(OracleConnection connectionTpc) { - String SqlStmt; - ArrayList m_Data = new ArrayList(); - int Tmp = 0; - int IndexID; - - SqlStmt = "SELECT INDEXID,KEYID,ITEM,CONTENT FROM CCS.CODELIST ORDER BY INDEXID,KEYID"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC); - OracleDataReader reader = Command.ExecuteReader(); + var sqlStmt = "SELECT INDEXID,KEYID,ITEM,CONTENT FROM CCS.CODELIST ORDER BY INDEXID,KEYID"; + OracleCommand command = new OracleCommand(sqlStmt, connectionTpc); + OracleDataReader reader = command.ExecuteReader(); try { - while (reader.Read()) { - ArrayList m_Record = new ArrayList(); - IndexID = Convert.ToInt32(reader["INDEXID"].ToString()); - m_Record.Add(IndexID); - m_Record.Add(Convert.ToInt32(reader["KEYID"].ToString())); - m_Record.Add(reader["ITEM"].ToString()); - m_Record.Add(reader["CONTENT"].ToString()); + var indexId = Convert.ToInt32(reader["INDEXID"].ToString()); + var keyId = Convert.ToInt32(reader["KEYID"].ToString()); + var item = (reader["ITEM"].ToString()); + var content = (reader["CONTENT"].ToString()); + Codelist codelist = new Codelist(indexId, keyId, item, content); + if (!_mTotalData.ContainsKey(indexId)) + { + _mTotalData.Add(indexId, new Dictionary<int, Codelist>()); + } + Dictionary<int, Codelist> keys = _mTotalData[indexId]; + if (keys.ContainsKey(keyId)) + { + keys.Add(keyId, codelist); + } - if (Tmp == IndexID) - { - m_Data.Add(m_Record); - } - else - { - m_TotalData.Add(Tmp, m_Data); - Tmp = IndexID; - m_Data = new ArrayList(); - m_Data.Add(m_Record); - } } - m_TotalData.Add(Tmp, m_Data); } catch (Exception e) { - Console.WriteLine("Error on Initial EOSCodelist: " + e.Message); + Console.WriteLine("Error on Startup EOSCodelist: " + e.Message); Console.WriteLine(e.StackTrace); } finally - { + { reader.Close(); - Command.Dispose(); + command.Dispose(); } } - public ArrayList getAllContent(int m_IndexID) + public Codelist[] GetAllContent(int mIndexId) { - return ((ArrayList)m_TotalData[m_IndexID]); + return _mTotalData[mIndexId].Values.ToArray(); } - public String getContent(int m_IndexID, int m_KeyID) + public string GetContent(int mIndexId, int mKeyId) { - ArrayList m_Tmp = (ArrayList)m_TotalData[m_IndexID]; - String m_Result = ""; + return _mTotalData[mIndexId][mKeyId].Content; + } - try + public string GetContent(int mIndexId, string mItem) + { + string mResult = ""; + + Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + + foreach (KeyValuePair<int, Codelist> pair in mTmp) { - for (int i = 0; i < m_Tmp.Count; i++) + if (pair.Value.Item.Equals(mItem)) { - if (Convert.ToInt32(((ArrayList)m_Tmp[i])[KeyID].ToString()) == m_KeyID) - { - m_Result = ((ArrayList)m_Tmp[i])[Content].ToString(); - break; - } - } - } - catch (Exception ex) - { - Console.WriteLine("Error in get CCSCodelist(getContent(int m_IndexID, int m_KeyID)): " + ex.Message); - } - return m_Result; - } - - public String getContent(int m_IndexID, String m_Item) - { - ArrayList m_Tmp = (ArrayList)m_TotalData[m_IndexID]; - String m_Result = ""; - - try - { - for (int i = 0; i < m_Tmp.Count; i++) - { - if ( ((ArrayList)m_Tmp[i])[Item].ToString().Trim().Equals(m_Item.Trim())) - { - m_Result = ((ArrayList)m_Tmp[i])[Content].ToString(); - break; - } - } - } - catch (Exception ex) - { - Console.WriteLine("Error in get CCSCodelist(getContent(int m_IndexID, String m_Item)): " + ex.Message); - } - return m_Result; - } - - public int getKeyID(int m_IndexID, String m_Content) - { - ArrayList m_Tmp = (ArrayList)m_TotalData[m_IndexID]; - int m_Result = 0; - - for (int i = 0; i < m_Tmp.Count; i++) - { - if (((ArrayList)m_Tmp[i])[Content].ToString().Equals(m_Content)) - { - m_Result = Convert.ToInt32(((ArrayList)m_Tmp[i])[KeyID].ToString()); + mResult = pair.Value.Content; break; } } - return m_Result; + return mResult; } - public String getItem(int m_IndexID, String m_Content) + public int GetKeyId(int mIndexId, string mContent) { - ArrayList m_Tmp = (ArrayList)m_TotalData[m_IndexID]; - String m_Result = ""; + Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + int mResult = 0; - for (int i = 0; i < m_Tmp.Count; i++) + foreach (KeyValuePair<int, Codelist> pair in mTmp) { - if (((ArrayList)m_Tmp[i])[Content].ToString().Equals(m_Content)) + if (pair.Value.Content.Equals(mContent)) { - m_Result = ((ArrayList)m_Tmp[i])[this.Item].ToString(); + mResult = pair.Key; break; } } - return m_Result; + return mResult; } - public int getContentNumber(int m_IndexID) + public string GetItem(int mIndexId, string mContent) { - return ((ArrayList)m_TotalData[m_IndexID]).Count; + Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + string mResult = ""; + + foreach (KeyValuePair<int, Codelist> pair in mTmp) + { + if (pair.Value.Content.Equals(mContent)) + { + mResult = pair.Value.Item; + break; + } + } + return mResult; } + + public int GetContentNumber(int mIndexId) + { + return _mTotalData[mIndexId].Count; + } + + public int Count => _mTotalData.Count; } -} +} \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT