public static int SeekActiveUnitsCuenca(DataTable dtzone, int qty) { System.Configuration.AppSettingsReader appSettings = new System.Configuration.AppSettingsReader(); string UNIT_ID = (string)appSettings.GetValue("GroupsChilds.UnitId", typeof(string)); string swhere = ""; CmpGroupsChildsGisDB cGroupChildsDb = new CmpGroupsChildsGisDB(); CmpGroupsDB cGroupsDb = new CmpGroupsDB(); foreach (DataRow dr in dtzone.Rows) { // If there is not a UNIT we follow deeping in the tree...(Level 2) if (dr["CGRPG_TYPE"].ToString() != UNIT_ID) { swhere = "CGRPG_ID = "+ dr["CGRPG_CHILD"].ToString(); DataTable dtsubzone = cGroupChildsDb.GetData(null, swhere, null, null); qty = SeekActiveUnits(dtsubzone, qty); } else { CmpUnitsDB udb = new CmpUnitsDB(); swhere = "UNI_ID = " + dr["CGRPG_CHILD"].ToString() + " AND UNI_IP IS NOT NULL AND UNI_DSTA_ID IN (0,1,2)"; DataTable dtUnit = udb.GetData(null, swhere, null, null); if (dtUnit.Rows.Count != 0) { qty++; } } } return(qty); }
public static string SeekUnitsString(DataTable dtzone) { System.Configuration.AppSettingsReader appSettings = new System.Configuration.AppSettingsReader(); string UNIT_ID = (string)appSettings.GetValue("GroupsChilds.UnitId", typeof(string)); string swhere = ""; CmpGroupsChildsGisDB cGroupChildsDb = new CmpGroupsChildsGisDB(); CmpGroupsDB cGroupsDb = new CmpGroupsDB(); string strRes = ""; string strTemp = ""; foreach (DataRow dr in dtzone.Rows) { // If there is not a UNIT we follow deeping in the tree...(Level 2) if (dr["CGRPG_TYPE"].ToString() != UNIT_ID) { swhere = "CGRPG_ID = "+ dr["CGRPG_CHILD"].ToString(); DataTable dtsubzone = cGroupChildsDb.GetData(null, swhere, null, null); strTemp = SeekUnitsString(dtsubzone); if (strTemp != "") { if (strRes == "") { strRes = strTemp; } else { strRes += "," + strTemp; } } } else { if (dr["CGRPG_CHILD"].ToString() != "") { CmpUnitsDB udb = new CmpUnitsDB(); swhere = "UNI_ID = " + dr["CGRPG_CHILD"].ToString() + " AND UNI_DPUNI_ID IN (1,2) "; DataTable dtUnit = udb.GetData(null, swhere, null, null); if (dtUnit.Rows.Count != 0) { if (strRes == "") { strRes = dr["CGRPG_CHILD"].ToString(); } else { strRes += "," + dr["CGRPG_CHILD"].ToString(); } } } } } return(strRes); }
private void OnInQueueReceiveCompleted(FecsBecsHeader header, string body) { if (_channelMgr != null) { string uri = header.ID; IChannel channel = _channelMgr.GetChannel(uri); if (channel == null) { channel = _channelMgr.OpenChannel(uri, ChannelType.BecsQueue); if (channel != null) { MessageProcessorManager.OnNewConnection(channel); } } if (channel != null) { BecsChannel bc = (BecsChannel)channel; StringBuilder packet = new StringBuilder(256); packet.AppendFormat(null, "<{0} {1}=\"{2}\" {3}=\"{4}\">{5}</{0}>", Tags.Packet, Tags.PacketSrcAttr, header.PacketInfo.SourceId, Tags.PacketDateAttr, Dtx.DtxToString(header.PacketInfo.Dtx), body); string xml = packet.ToString(); ILogger localLogger = null; try { Database d = null; CmpUnitsDB cmpUnits = new CmpUnitsDB(); //d = DatabaseFactory.GetDatabase(); localLogger = DatabaseFactory.Logger; if (localLogger != null) { localLogger.AddLog("[OnInQueueReceiveCompleted]: Updating ID: " + header.PacketInfo.SourceId + " IP :" + header.IP, LoggerSeverities.Debug); } if (Convert.ToInt32(header.PacketInfo.SourceId) != -1) { if (cmpUnits.UpdateIP(Convert.ToInt32(header.PacketInfo.SourceId), header.IP) != 1) { if (localLogger != null) { localLogger.AddLog("[OnInQueueReceiveCompleted]: Error Updating IP", LoggerSeverities.Debug); } } else { if (localLogger != null) { localLogger.AddLog("[OnInQueueReceiveCompleted]: Update OK", LoggerSeverities.Debug); } } } } catch { // Do not do nothing?? // Si tenemos un error en realizar un update de la ip // no hacemos nada if (localLogger != null) { localLogger.AddLog("[OnInQueueReceiveCompleted]: Error Updating IP", LoggerSeverities.Debug); } } Interlocked.Increment(ref _packetId); OPSTelegrama opsTel = OPSTelegramaFactory.CreateOPSTelegrama(_packetId, xml); bc.ReceiveMessage(opsTel); } } }
/// <summary> /// Process the Message. The process of this message is specified in OPS_D_M3.doc /// </summary> /// <returns>Response for the message (1 string)</returns> public StringCollection Process() { StringCollection res = null; // Get ALL current alarms of that device OPS.Comm.Becs.Components.CmpAlarmsDevices ad = _session.AlarmsDevices; //OPS.Comm.Becs.Components.CmpAlarmsDevices ad = new OPS.Comm.Becs.Components.CmpAlarmsDevices(); if (ad.UpdateAlarms(_unit, _alarmsMasks, _date)) { // Update UNIT status CmpUnitsDB udb = new CmpUnitsDB(); udb.UpdateStatus(_unit, _status); if (_loadUnloadStatus >= 0) { OracleConnection oraDBConn = null; OracleCommand oraCmd = null; ILogger logger = null; try { Database d = OPS.Components.Data.DatabaseFactory.GetDatabase(); logger = DatabaseFactory.Logger; System.Data.IDbConnection DBCon = d.GetNewConnection(); oraDBConn = (OracleConnection)DBCon; oraDBConn.Open(); if (oraDBConn.State == System.Data.ConnectionState.Open) { oraCmd = new OracleCommand(); oraCmd.Connection = (OracleConnection)oraDBConn; oraCmd.CommandText = ""; int iMask = 1; int iStatus; int iSlot; for (int i = 0; i < 3; i++) { iSlot = i + 1; iStatus = Convert.ToInt32((_loadUnloadStatus & iMask) > 0); iMask = iMask * 2; oraCmd.CommandText = string.Format("update umdm_stations_slots set " + "USS_CURRENT_STATE={0}, " + "USS_UPDDATE=to_date('{1}', 'HH24MISSDDMMYY') " + "where USS_ORDER_STATION = {2} " + " and USS_US_ID = {3}", iStatus, OPS.Comm.Dtx.DtxToString(_date), iSlot, _unit); oraCmd.ExecuteNonQuery(); } res = ReturnAck(AckMessage.AckTypes.ACK_PROCESSED); } else { if (logger != null) { logger.AddLog("[Msg3:Process]: Error: BD is not opened", LoggerSeverities.Error); } res = ReturnNack(NackMessage.NackTypes.NACK_ERROR_BECS); } } catch (Exception e) { if (logger != null) { logger.AddLog("[Msg3:Process]: Error: " + e.Message, LoggerSeverities.Error); } res = ReturnNack(NackMessage.NackTypes.NACK_ERROR_BECS); } finally { if (oraCmd != null) { oraCmd.Dispose(); oraCmd = null; } if (oraDBConn != null) { oraDBConn.Close(); oraDBConn.Dispose(); oraDBConn = null; } } } else { if (_user >= -1) { OracleConnection oraDBConn = null; OracleCommand oraCmd = null; ILogger logger = null; try { Database d = OPS.Components.Data.DatabaseFactory.GetDatabase(); logger = DatabaseFactory.Logger; System.Data.IDbConnection DBCon = d.GetNewConnection(); oraDBConn = (OracleConnection)DBCon; oraDBConn.Open(); if (oraDBConn.State == System.Data.ConnectionState.Open) { oraCmd = new OracleCommand(); oraCmd.Connection = (OracleConnection)oraDBConn; oraCmd.CommandText = ""; oraCmd.CommandText = string.Format("update units set " + "uni_usr_id={0} " + "where uni_id = {1}", _user == -1?"NULL":_user.ToString(), _unit); oraCmd.ExecuteNonQuery(); res = ReturnAck(AckMessage.AckTypes.ACK_PROCESSED); } else { if (logger != null) { logger.AddLog("[Msg3:Process]: Error: BD is not opened", LoggerSeverities.Error); } res = ReturnNack(NackMessage.NackTypes.NACK_ERROR_BECS); } } catch (Exception e) { if (logger != null) { logger.AddLog("[Msg3:Process]: Error: " + e.Message, LoggerSeverities.Error); } res = ReturnNack(NackMessage.NackTypes.NACK_ERROR_BECS); } finally { if (oraCmd != null) { oraCmd.Dispose(); oraCmd = null; } if (oraDBConn != null) { oraDBConn.Close(); oraDBConn.Dispose(); oraDBConn = null; } } } else { res = ReturnAck(AckMessage.AckTypes.ACK_PROCESSED); } } } else { res = ReturnAck(AckMessage.AckTypes.ACK_PROCESSED); } return(res); }