예제 #1
0
        /// <summary>
        /// Validates the configured url and adds or updates the monitoring instance
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _view_ConfiguredUrl(object sender, UrlAddressInstanceEventArgs e)
        {
            var instance = new UrlAddressMonitoringInstance
            {
                Address           = _view.Address,
                Description       = _view.Description,
                DisplayName       = _view.DisplayName,
                DnsServers        = _view.CustomDnsServers,
                DnsServersTimeout = _view.DnsTimeout,
                ProxyAddress      = _view.Proxy,
                ActingAgent       = _view.ActionPoint?.DisplayName,
                ActionPoint       = _view.ActionPoint
            };


            try
            {
                var valid = _model.ValidateInstance(instance);
                if (!valid.IsValid)
                {
                    _view.SetErrors(valid.Errors);
                    return;
                }

                //Update or create instance
                if (string.IsNullOrEmpty(_view.Instance.Address))
                {
                    _model.AddUrlMonitoringInstance(instance);
                }
                else
                {
                    _model.UpdateUrlMonitoringInstance(instance);
                }

                _view.Hide();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Invalid instance", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        /// <summary>
        /// Shows view for user to configure url monitoring instance
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _model_ConfigureInstance(object sender, UrlAddressInstanceEventArgs e)
        {
            _view.Instance = e.Instances.First();

            _view.ShowDialog();
        }
예제 #3
0
 /// <summary>
 /// Edit an existing url monitoring instance
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void _view_EditUrl(object sender, UrlAddressInstanceEventArgs e)
 {
     _model.ConfigureUrlMonitoringInstance(e.Instances.First());
 }
예제 #4
0
 /// <summary>
 /// Add a new url monitoring instance
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void _view_AddUrl(object sender, UrlAddressInstanceEventArgs e)
 {
     _model.ConfigureUrlMonitoringInstance(new UrlAddressMonitoringInstance());
 }
예제 #5
0
 /// <summary>
 /// Remove existing url monitoring instances
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void _view_DeleteUrl(object sender, UrlAddressInstanceEventArgs e)
 {
     _model.DeleteUrlMonitoringInstances(e.Instances);
 }
예제 #6
0
 private void _model_InstanceAdded(object sender, UrlAddressInstanceEventArgs e)
 {
     _view.Urls = new BindingList <UrlAddressMonitoringInstance>(_model.GetUrlMonitoringInstances().ToList());
 }