//Suresh 12-SEPTEMBER-2011 INS-2248 /// <summary> /// Update local network settings. It's assumed these can /// only be edited in Configurator and not in iNet. /// </summary> /// <param name="config"></param> /// <returns>true if any of the network settings are modified. Otherwise, false.</returns> private bool UpdateNetworkSettings(DockingStation config, DockingStation.NetworkInfo networksettings) { //Log.Assert(UseDockingStation, "UseDockingStation should be true!"); bool modified = false; if (networksettings.IpAddress != config.NetworkSettings.IpAddress) { modified = LogUpdate("IpAddress", networksettings.IpAddress, config.NetworkSettings.IpAddress); config.NetworkSettings.IpAddress = networksettings.IpAddress; } if (networksettings.SubnetMask != config.NetworkSettings.SubnetMask) { modified = LogUpdate("SubnetMask", networksettings.SubnetMask, config.NetworkSettings.SubnetMask); config.NetworkSettings.SubnetMask = networksettings.SubnetMask; } if (networksettings.Gateway != config.NetworkSettings.Gateway) { modified = LogUpdate("Gateway", networksettings.Gateway, config.NetworkSettings.Gateway); config.NetworkSettings.Gateway = networksettings.Gateway; } if (networksettings.DhcpEnabled != config.NetworkSettings.DhcpEnabled) { modified = LogUpdate("DhcpEnabled", networksettings.DhcpEnabled, config.NetworkSettings.DhcpEnabled); config.NetworkSettings.DhcpEnabled = networksettings.DhcpEnabled; } if (networksettings.DnsPrimary != config.NetworkSettings.DnsPrimary) { modified = LogUpdate("DnsPrimary", networksettings.DnsPrimary, config.NetworkSettings.DnsPrimary); config.NetworkSettings.DnsPrimary = networksettings.DnsPrimary; } if (networksettings.DnsSecondary != config.NetworkSettings.DnsSecondary) { modified = LogUpdate("DnsSecondary", networksettings.DnsSecondary, config.NetworkSettings.DnsSecondary); config.NetworkSettings.DnsSecondary = networksettings.DnsSecondary; } if (modified) { _settingsUpdateEvent.RebootRequired = true; } return(modified); }
/// <summary> /// Inserts Replaced docking station network information into the table /// </summary> /// <param name="ns">Network Settings</param> /// <param name="trx">Transation</param> /// <returns></returns> private bool Insert(DockingStation.NetworkInfo ns, DataAccessTransaction trx) { try { using (IDbCommand cmd = GetCommand(_insertSql, trx)) { cmd.Parameters.Add(GetDataParameter("@DHCPENABLED", ns.DhcpEnabled ? 1 : 0)); cmd.Parameters.Add(GetDataParameter("@IPADDRESS", ns.IpAddress)); cmd.Parameters.Add(GetDataParameter("@SUBNETMASK", ns.SubnetMask)); cmd.Parameters.Add(GetDataParameter("@GATEWAY", ns.Gateway)); cmd.Parameters.Add(GetDataParameter("@DNSPRIMARY", ns.DnsPrimary)); cmd.Parameters.Add(GetDataParameter("@DNSSECONDARY", ns.DnsSecondary)); bool success = cmd.ExecuteNonQuery() > 0; return(success); } } catch (Exception ex) { throw new DataAccessException(_insertSql, ex); } }
/// <summary> /// Gets the replaced docking station network settings. /// </summary> /// <param name="trx">The transaction</param> /// <returns></returns> public DockingStation.NetworkInfo Find(DataAccessTransaction trx) { string sql = "SELECT * FROM " + TableName; try { using (IDbCommand cmd = GetCommand(sql, trx)) { using (IDataReader reader = cmd.ExecuteReader()) { if (!reader.Read()) { Log.Debug("No REPLACED NETWORK SETTINGS record found"); return(null); } DataAccessOrdinals ordinals = new DataAccessOrdinals(reader); DockingStation.NetworkInfo ns = new DockingStation.NetworkInfo(); ns.DhcpEnabled = SqlSafeGetShort(reader, ordinals["DHCPENABLED"]) == 1 ? true : false; ns.IpAddress = SqlSafeGetString(reader, ordinals["IPADDRESS"]); ns.SubnetMask = SqlSafeGetString(reader, ordinals["SUBNETMASK"]); ns.Gateway = SqlSafeGetString(reader, ordinals["GATEWAY"]); ns.DnsPrimary = SqlSafeGetString(reader, ordinals["DNSPRIMARY"]); ns.DnsSecondary = SqlSafeGetString(reader, ordinals["DNSSECONDARY"]); return(ns); } } } catch (Exception ex) { throw new DataAccessException(sql, ex); } }
/// <summary> /// Save the replaced docking station network settings. /// Before insert's the new network settings old settings will be delete /// </summary> /// <param name="ns"></param> /// <param name="trx"></param> /// <returns></returns> public bool Save(DockingStation.NetworkInfo ns, DataAccessTransaction trx) { Delete(trx); //delete the network settings return(Insert(ns, trx)); //inserts the new network settings }