| 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.Data.OracleClient;  | 
|   | 
| namespace CCSTrace.CCS.Object  | 
| {  | 
|     public class Dept_Contrast  | 
|     {  | 
|         private ArrayList m_TotalData = null;  | 
|         public static String DefaultDept = "市區巡修課";  | 
|   | 
|         public Dept_Contrast(OracleConnection _ConnectionTPC,OracleTransaction _Trx)  | 
|         {  | 
|             if (m_TotalData == null)  | 
|                 this.Initial(_ConnectionTPC,_Trx);  | 
|         }  | 
|   | 
|         public int getDept_Code(String m_Meter)  | 
|         {  | 
|             //int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept);  | 
|             int Result = -1;  | 
|   | 
|             try  | 
|             {  | 
|                 for (int i = 0; i < m_TotalData.Count; i++)  | 
|                 {  | 
|                     ArrayList TmpData = (ArrayList)m_TotalData[i];  | 
|   | 
|                     if (TmpData[2] == null)  | 
|                     {  | 
|                         Result = Convert.ToInt32(TmpData[1].ToString());  | 
|                         break;  | 
|                     }  | 
|                     else  | 
|                     {// 一對多(需作比對)  | 
|                         long MinMeter = Convert.ToInt64(TmpData[3].ToString());  | 
|                         long MaxMeter = Convert.ToInt64(TmpData[2].ToString());  | 
|                         long CustMeter = Convert.ToInt64(m_Meter);  | 
|   | 
|                         if ((CustMeter > MinMeter) && (CustMeter < MaxMeter))  | 
|                         {  | 
|                             Result = Convert.ToInt32(TmpData[1].ToString());  | 
|                             break;  | 
|                         }  | 
|                     }  | 
|                 }  | 
|             }  | 
|             catch (Exception ex)  | 
|             {  | 
|                 Console.WriteLine(ex.Message);  | 
|             }  | 
|             return Result;  | 
|         }  | 
|   | 
|         public int getDept_Code(int SC_Code, String Meter)  | 
|         {  | 
|             int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept);  | 
|             try  | 
|             {  | 
|                 for (int i = 0; i < m_TotalData.Count; i++)  | 
|                 {  | 
|                     ArrayList TmpData = (ArrayList)m_TotalData[i];  | 
|                     int Tmp_Dept = Convert.ToInt32(TmpData[0].ToString());  | 
|   | 
|                     if (Tmp_Dept == SC_Code)  | 
|                     {  | 
|                         // 一對一(無最大最小電號限制)  | 
|                         if (TmpData[2] == null)  | 
|                         {  | 
|                             Result = Convert.ToInt32(TmpData[1].ToString());  | 
|                             break;  | 
|                         }  | 
|                         else  | 
|                         {// 一對多(需作比對)  | 
|                             long MinMeter = Convert.ToInt64(TmpData[3].ToString());  | 
|                             long MaxMeter = Convert.ToInt64(TmpData[2].ToString());  | 
|                             long CustMeter = Convert.ToInt64(Meter);  | 
|   | 
|                             if ((CustMeter > MinMeter) && (CustMeter < MaxMeter))  | 
|                             {  | 
|                                 Result = Convert.ToInt32(TmpData[1].ToString());  | 
|                                 break;  | 
|                             }  | 
|                         }  | 
|                     }  | 
|                 }  | 
|             }  | 
|             catch (Exception ex)  | 
|             {  | 
|                 Console.WriteLine(ex.Message);  | 
|             }  | 
|   | 
|             return Result;  | 
|         }  | 
|   | 
|         private void Initial(OracleConnection _ConnectionTPC,OracleTransaction _Trx)  | 
|         {  | 
|             String SqlStmt;  | 
|             m_TotalData = new ArrayList();  | 
|   | 
|             SqlStmt = "SELECT SC_CODE,DEPT_CODE,MAX_METER,MIN_METER FROM CCS.DEPT_CONTRAST";  | 
|             OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC,_Trx);  | 
|             OracleDataReader reader = Command.ExecuteReader();  | 
|   | 
|             try  | 
|             {  | 
|   | 
|                 while (reader.Read())  | 
|                 {  | 
|                     ArrayList Record = new ArrayList();  | 
|                     int SC_Code = Convert.ToInt32(reader["SC_CODE"].ToString());  | 
|                     Record.Add(SC_Code);  | 
|                     Record.Add(Convert.ToInt32(reader["Dept_Code"].ToString()));  | 
|                     Record.Add(reader["Max_Meter"].ToString());  | 
|                     Record.Add(reader["Min_Meter"].ToString());  | 
|   | 
|                     m_TotalData.Add(Record);  | 
|                 }  | 
|             }  | 
|             catch (Exception e)  | 
|             {  | 
|                 Console.WriteLine(e.StackTrace);  | 
|             }  | 
|             finally  | 
|             {   | 
|                 reader.Close();  | 
|                 Command.Dispose();  | 
|             }  | 
|         }  | 
|   | 
|     }  | 
| }  |