using Common; using Oracle.DataAccess.Client; using System; using System.Collections.Generic; using System.Data.Common; namespace Dao { public class GwDiverterDao : IDisposable { public List LoadList() { List list = new List(); try { using (OracleDataReader reader = OracleHelper.ExecuteReader("select * from GW_Diverter order by Diverter_id desc ", OracleHelper.Connection)) { while (((DbDataReader)reader).Read()) { GwDiverter diverter = new GwDiverter(); if (this.ReadInfo(reader, diverter)) list.Add(diverter); } } } catch (Exception ex) { LogHelper.Error(ex); return list; } return list; } public List LoadItemList(string diverterID) { List list = new List(); try { using (OracleDataReader reader = OracleHelper.ExecuteReader("select * from GW_DIVERTER_ITEM WHERE DIVERTER_ID=:DIVERTER_ID", OracleHelper.Connection, new OracleParameter(":DIVERTER_ID", (object)diverterID))) { while (((DbDataReader)reader).Read()) { GwDiverterItem diverterItem = new GwDiverterItem(); if (this.ReadInfoItem(reader, diverterItem)) list.Add(diverterItem); } } } catch (Exception ex) { LogHelper.Error(ex); return list; } return list; } private bool ReadInfo(OracleDataReader reader, GwDiverter diverter) { OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); diverter.DiverterID = oracleReaderWrapper.GetInt("DIVERTER_ID", 0); diverter.DiverterName = oracleReaderWrapper.GetString("DIVERTER_NAME", string.Empty); diverter.Content = oracleReaderWrapper.GetString("CONTENT", ""); return true; } private bool ReadInfoItem(OracleDataReader reader, GwDiverterItem diverterItem) { OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); diverterItem.Mode = oracleReaderWrapper.GetInt("DMODE", 0); diverterItem.Keywords = oracleReaderWrapper.GetString("KEYWORDS", string.Empty); diverterItem.SmMaxLength = oracleReaderWrapper.GetInt("SM_MAX_LENGTH", 0); diverterItem.SmMinLength = oracleReaderWrapper.GetInt("SM_MIN_LENGTH", 0); diverterItem.Segments = oracleReaderWrapper.GetString("SEGMENTS", string.Empty); diverterItem.ExtNoMode = oracleReaderWrapper.GetString("EXTNO_MODE", string.Empty); diverterItem.Province = oracleReaderWrapper.GetString("PROVINCE", string.Empty); diverterItem.CMOPID = oracleReaderWrapper.GetInt("CM_OP_ID", 0); diverterItem.CUOPID = oracleReaderWrapper.GetInt("CU_OP_ID", 0); diverterItem.CTOPID = oracleReaderWrapper.GetInt("CT_OP_ID", 0); diverterItem.CMExtNo = oracleReaderWrapper.GetString("CM_EXT_NO", ""); diverterItem.CUExtNo = oracleReaderWrapper.GetString("CU_EXT_NO", ""); diverterItem.CTExtNo = oracleReaderWrapper.GetString("CT_EXT_NO", ""); diverterItem.CMExtParams = oracleReaderWrapper.GetString("CM_EXT_PARAMS", ""); diverterItem.CTExtParams = oracleReaderWrapper.GetString("CU_EXT_PARAMS", ""); diverterItem.CUExtParams = oracleReaderWrapper.GetString("CT_EXT_PARAMS", ""); return true; } public void Dispose() { } public GwDiverter GetEntity(string diverterID) { try { using (OracleDataReader reader = OracleHelper.ExecuteReader("select * from GW_Diverter WHERE DIVERTER_ID=:DIVERTER_ID", OracleHelper.Connection, new OracleParameter(":DIVERTER_ID", (object)diverterID))) { while (((DbDataReader)reader).Read()) { GwDiverter diverter = new GwDiverter(); if (this.ReadInfo(reader, diverter)) return diverter; } } } catch (Exception ex) { LogHelper.Error(ex); } return (GwDiverter)null; } public bool Exists(int diverterID, string diverterName) { return Convert.ToInt32(OracleHelper.ExecuteScalar("SELECT COUNT(*) FROM GW_DIVERTER WHERE DIVERTER_ID<>:DIVERTER_ID AND DIVERTER_NAME=:DIVERTER_NAME", OracleHelper.Connection, new OracleParameter(":DIVERTER_ID", (object)diverterID), new OracleParameter(":DIVERTER_NAME", (object)diverterName))) > 0; } public bool UpdateInfo(GwDiverter diverter, List items) { List> list = new List>(); if (diverter.DiverterID == 0) { diverter.DiverterID = Convert.ToInt32(OracleHelper.ExecuteScalar("SELECT GW_DIVERTER_SEQ.NEXTVAL FROM DUAL", OracleHelper.Connection)); string key = " INSERT INTO GW_DIVERTER(DIVERTER_ID,DIVERTER_NAME,CONTENT,CREATE_TIME) VALUES(:DIVERTER_ID,:DIVERTER_NAME,:CONTENT,SYSDATE)"; OracleParameter[] oracleParameterArray = new OracleParameter[3] { new OracleParameter(":DIVERTER_ID", (object) diverter.DiverterID), new OracleParameter(":DIVERTER_NAME", (object) diverter.DiverterName), new OracleParameter(":CONTENT", (object) diverter.Content) }; list.Add(new KeyValuePair(key, oracleParameterArray)); } else { string key = "UPDATE GW_DIVERTER SET DIVERTER_NAME=:DIVERTER_NAME,CONTENT=:CONTENT WHERE DIVERTER_ID=:DIVERTER_ID"; OracleParameter[] oracleParameterArray = new OracleParameter[3] { new OracleParameter(":DIVERTER_NAME", (object) diverter.DiverterName), new OracleParameter(":CONTENT", (object) diverter.Content), new OracleParameter(":DIVERTER_ID", (object) diverter.DiverterID) }; list.Add(new KeyValuePair(key, oracleParameterArray)); } string key1 = "DELETE FROM GW_DIVERTER_ITEM WHERE DIVERTER_ID=:DIVERTER_ID"; OracleParameter[] oracleParameterArray1 = new OracleParameter[1] { new OracleParameter(":DIVERTER_ID", (object) diverter.DiverterID) }; list.Add(new KeyValuePair(key1, oracleParameterArray1)); string key2 = "INSERT INTO GW_DIVERTER_ITEM(ITEM_ID, DIVERTER_ID, CM_OP_ID, CU_OP_ID, CT_OP_ID, CM_EXT_NO, CU_EXT_NO, CT_EXT_NO, CM_EXT_PARAMS, CU_EXT_PARAMS, CT_EXT_PARAMS, DMODE, SM_MAX_LENGTH, SM_MIN_LENGTH, SEGMENTS, KEYWORDS,PROVINCE,EXTNO_MODE) VALUES(GW_DIVERTER_ITEM_ID_SEQ.NEXTVAL, :DIVERTER_ID, :CM_OP_ID, :CU_OP_ID, :CT_OP_ID, :CM_EXT_NO, :CU_EXT_NO, :CT_EXT_NO, :CM_EXT_PARAMS, :CU_EXT_PARAMS, :CT_EXT_PARAMS, :DMODE, :SM_MAX_LENGTH, :SM_MIN_LENGTH, :SEGMENTS, :KEYWORDS,:PROVINCE,:EXTNO_MODE)"; foreach (GwDiverterItem gwDiverterItem in items) { OracleParameter[] oracleParameterArray2 = new OracleParameter[17] { new OracleParameter(":DIVERTER_ID", (object) diverter.DiverterID), new OracleParameter(":CM_OP_ID", (object) gwDiverterItem.CMOPID), new OracleParameter(":CU_OP_ID", (object) gwDiverterItem.CUOPID), new OracleParameter(":CT_OP_ID", (object) gwDiverterItem.CTOPID), new OracleParameter(":CM_EXT_NO", (object) gwDiverterItem.CMExtNo), new OracleParameter(":CU_EXT_NO", (object) gwDiverterItem.CUExtNo), new OracleParameter(":CT_EXT_NO", (object) gwDiverterItem.CTExtNo), new OracleParameter(":CM_EXT_PARAMS", (object) gwDiverterItem.CMExtParams), new OracleParameter(":CU_EXT_PARAMS", (object) gwDiverterItem.CUExtParams), new OracleParameter(":CT_EXT_PARAMS", (object) gwDiverterItem.CTExtParams), new OracleParameter(":DMODE", (object) gwDiverterItem.Mode), new OracleParameter(":SM_MIN_LENGTH", (object) gwDiverterItem.SmMinLength), new OracleParameter(":SM_MAX_LENGTH", (object) gwDiverterItem.SmMaxLength), new OracleParameter(":SEGMENTS", (object) gwDiverterItem.Segments), new OracleParameter(":KEYWORDS", (object) gwDiverterItem.Keywords), new OracleParameter(":PROVINCE", (object) gwDiverterItem.Province), new OracleParameter(":EXTNO_MODE", (object) gwDiverterItem.ExtNoMode) }; list.Add(new KeyValuePair(key2, oracleParameterArray2)); } OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); return true; } public bool AddNew(GwDiverter diverter) { return OracleHelper.ExecuteSql("INSERT INTO GW_DIVERTER(DIVERTER_NAME,CONTENT,DIVERTER_ID) VALUES(:DIVERTER_NAME,:CONTENT,GW_DIVERTER_SEQ.NEXTVAL)", OracleHelper.Connection, new OracleParameter(":DIVERTER_NAME", (object)diverter.DiverterName), new OracleParameter(":CONTENT", (object)diverter.Content)) > 0; } public bool Delete(string diverterID) { return OracleHelper.ExecuteSql("DELETE FROM GW_DIVERTER WHERE DIVERTER_ID=:DIVERTER_ID", OracleHelper.Connection, new OracleParameter(":DIVERTER_ID", (object)diverterID)) > 0; } } }