예제 #1
0
        public void TestSite(SiteParameters webSite, int interval, bool pingTest)
        {
            try
            {
                if (webSite != null)
                {
                    webSite.SurveyTime += TimeSpan.FromTicks(interval * 10000000);

                    if (pingTest)
                    {
                        webSite.IsOnline = PingSite(webSite.SiteName, Parameter.TimeOutSec);
                    }
                    else
                    {
                        webSite.IsOnline = TestSite(webSite.SiteName, Parameter.TimeOutSec);
                    }

                    if (!webSite.IsOnline)
                    {
                        webSite.OffLineTime += TimeSpan.FromTicks(interval * 10000000);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.WriteError(ex);
            }
        }
예제 #2
0
 public GlobalParameters()
 {
     SitesList       = new ObservableCollection <SiteParameters>();
     ConnectionTest  = new SiteParameters(SITE_ONELINE_TEST);
     Mail            = string.Empty;
     LogLevel        = MessageLevel.Information;
     _pathSiteName   = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\MonitoringSite\\";
     TimeOutSec      = 1;
     TimeIntervalSec = 10;
 }
예제 #3
0
 public void ChangdeConnectionStatus(SiteParameters site, bool statusLine)
 {
     if (statusLine)
     {
         AddEvent("Connection online");
     }
     else
     {
         AddEvent("Connection offline");
     }
 }
예제 #4
0
 private void ChangdeOnlineStatus(SiteParameters site, bool statusLine)
 {
     if (statusLine)
     {
         site.AddEvent("Site offline");
         MailSender.SendMailShutdownSite(site.SiteName, Parameter.Mail);
     }
     else
     {
         site.AddEvent("Site online");
         MailSender.SendMailOnlineSite(site.SiteName, Parameter.Mail);
     }
 }
예제 #5
0
        public bool AddSite(string name)
        {
            bool response = false;

            if (!Parameter.SitesList.Select(s => s.SiteName).Contains(name))
            {
                lock (Parameter)
                {
                    SiteParameters siteadded = new SiteParameters(name);
                    siteadded.AddEvent("Adding");
                    Parameter.ConnectionTest.OnConnectionChanged += siteadded.ChangdeConnectionStatus;
                    siteadded.ChangdeConnectionStatus(null, Parameter.ConnectionTest.IsOnline);
                    Parameter.SitesList.Add(siteadded);
                    response = true;
                }
            }
            return(response);
        }
예제 #6
0
        public bool RemoveSite(string name)
        {
            bool response = false;

            if (name != string.Empty)
            {
                SiteParameters site = Parameter.SitesList.Where(s => s.SiteName == name).FirstOrDefault();

                if (Parameter.SitesList.Contains(site))
                {
                    lock (Parameter)
                    {
                        Parameter.SitesList.Remove(site);
                        response = true;
                    }
                }
            }

            return(response);
        }