示例#1
0
        /// <summary>
        /// Перебирает значения столбца с IP-адресами в DataTable.
        /// Проверяет состояние в сети командой ping.send(host).
        /// </summary>
        /// <param name="dg">DataTable, переданный bindingSourse.</param>
        /// <param name="tableIndex">индекс таблицы 1-физических,2-виртуальных серверов</param>
        public async void DgStatus(DataTable dg, int tableIndex)
        {
            int label;

            if (dg.Rows.Count > 0)
            {
                foreach (DataRow row in dg.Rows)
                {
                    label = tableIndex == 1 ? 6 : 7;

                    string metka = row[label].ToString();     // метка об архиващии

                    string elemStr = row[2].ToString();       // пингуемые IP


                    if (metka == "0")   // т.е., проверяемый сервер должен быть пропингован
                    {
                        if (elemStr != string.Empty)
                        {
                            row[5] = await PingAndUpdateAsync(new Ping(), elemStr);
                        }
                    }
                    else
                    {
                        row[5] = ConvertImageToByte._disconnec();
                    }
                }
            }
        }
示例#2
0
        private async Task <byte[]> PingAndUpdateAsync(Ping ping, string ip)
        {
            byte[] x;
            try
            {
                var reply = await ping.SendPingAsync(ip);

                if (reply.Status == IPStatus.Success)
                {
                    x = ConvertImageToByte._connection();
                }
                else
                {
                    x = ConvertImageToByte._disconnec();
                }
                return(x);
            }
            catch
            {
                x = ConvertImageToByte._disconnec();
                return(x);
            }
        }