ulysseskao
2016-04-29 b0c18d369abd06075c83759b0e19823c2a11d716
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;
    }
}
}