Esempio n. 1
0
        //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
 }