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