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/EOSCodelist.cs |  125 ++++++++++++++++-------------------------
 1 files changed, 50 insertions(+), 75 deletions(-)

diff --git a/CCSTrace/CCS/Object/EOSCodelist.cs b/CCSTrace/CCS/Object/EOSCodelist.cs
index a9430b5..158383c 100644
--- a/CCSTrace/CCS/Object/EOSCodelist.cs
+++ b/CCSTrace/CCS/Object/EOSCodelist.cs
@@ -1,128 +1,103 @@
 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 EOSCodelist
+    public class EosCodelist
     {
-        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 EOSCodelist(OracleConnection _Connection)
+        public EosCodelist(OracleConnection connection)
         {
-            String SqlStmt;
-            int IndexID;
-            ArrayList m_Data = new ArrayList();
-            int Tmp = 0;
-
-            SqlStmt = "SELECT INDEXID,KEYID,ITEM,CONTENT FROM EOS.CODELIST ORDER BY INDEXID,KEYID";
-            OracleCommand Command = new OracleCommand(SqlStmt, _Connection);
-            OracleDataReader reader = Command.ExecuteReader();
+            var sqlStmt = "SELECT INDEXID,KEYID,ITEM,CONTENT FROM EOS.CODELIST ORDER BY INDEXID,KEYID";
+            OracleCommand command = new OracleCommand(sqlStmt, connection);
+            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());
-
-                    if (Tmp == IndexID)
-                        m_Data.Add(m_Record);
-                    else
+                    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))
                     {
-                        m_TotalData.Add(Tmp.ToString(), m_Data);
-                        Tmp = IndexID;
-                        m_Data = new ArrayList();
-                        m_Data.Add(m_Record);
+                        _mTotalData.Add(indexId, new Dictionary<int, Codelist>());
+                    }
+                    Dictionary<int, Codelist>  keys = _mTotalData[indexId];
+                    if (keys.ContainsKey(keyId))
+                    {
+                        keys.Add(keyId, codelist);
                     }
                 }
-                m_TotalData.Add(Tmp.ToString(), 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.ToString()];
+            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.ToString()];
-            String m_Result = "";
+            return _mTotalData[mIndexId][mKeyId].Content;
+        }
 
-            for (int i = 0; i < m_Tmp.Count; i++)
+        public string GetContent(int mIndexId, string mItem)
+        {
+            string mResult = "";
+
+            Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId];
+
+            foreach (KeyValuePair<int, Codelist> pair in mTmp)
             {
-                if (Convert.ToInt32(((ArrayList)m_Tmp[i])[KeyID].ToString()) == m_KeyID)
+                if (pair.Value.Item.Equals(mItem))
                 {
-                    m_Result = ((ArrayList)m_Tmp[i])[Content].ToString();
+                    mResult = pair.Value.Content;
                     break;
                 }
             }
-            return m_Result;
+            return mResult;
         }
 
-        public String getContent(int m_IndexID, String m_Item)
+        public int GetKeyId(int mIndexId, string mContent)
         {
-            ArrayList m_Tmp = (ArrayList)m_TotalData[m_IndexID.ToString()];
-            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])[Item].ToString().Equals(m_Item))
+                if (pair.Value.Content.Equals(mContent))
                 {
-                    m_Result = ((ArrayList)m_Tmp[i])[Content].ToString();
+                    mResult = pair.Key;
                     break;
                 }
             }
-            return m_Result;
+            return mResult;
         }
 
-        public int getKeyID(int m_IndexID, String m_Content)
+        public int GetContentNumber(int mIndexId)
         {
-            ArrayList m_Tmp = (ArrayList)m_TotalData[m_IndexID.ToString()];
-            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])[1].ToString());
-                    break;
-                }
-            }
-            return m_Result;
+            return (_mTotalData[mIndexId]).Count;
         }
 
-        public int getContentNumber(int m_IndexID)
-        {
-            return ((ArrayList)m_TotalData[m_IndexID]).Count;
-        }
+        public int Count => _mTotalData.Count;
     }
-}
+}
\ No newline at end of file

--
Gitblit v0.0.0-SNAPSHOT