view ServerMonitor/Controls/HttpCheckControl.cs @ 10:9e77c0dccb66

Add update checker
author Brad Greco <brad@bgreco.net>
date Mon, 08 Apr 2019 21:31:03 -0400
parents 7127d5b5ac75
children b713b9db4c82
line wrap: on
line source

namespace ServerMonitorApp
{
    /// <summary>Control for editing an HTTP check.</summary>
    [CheckType(typeof(HttpCheck))]
    public partial class HttpCheckControl : CheckControl
    {
        public HttpCheckControl()
        {
            InitializeComponent();
        }

        /// <summary>Sets the values of the controls from a check's properties.</summary>
        public override void LoadCheck(Check check1)
        {
            HttpCheck check = (HttpCheck)check1;
            UrlTextBox.Text = check.Url;
            ResponseCodeCheckBox.Checked = check.CheckResponseCode;
            ResponseCodeTextBox.Text = check.ResponseCode.ToString();
            ResponseLengthCheckbox.Checked = check.CheckResponseLength;
            ResponseLengthMinTextBox.Text = check.ResponseLengthMin;
            ResponseLengthMaxTextBox.Text = check.ResponseLengthMax;
            ResponseBodyCheckBox.Checked = check.CheckResponseBody;
            ResponseBodyComboBox.SelectedIndex = (int)check.ResponseBodyMatchType;
            ResponseBodyTextBox.Text = check.ResponseBodyPattern;
            ResponseBodyRegexCheckBox.Checked = check.ResponseBodyUseRegex;
        }

        /// <summary>Updates the properties of a check from user input.</summary>
        public override void UpdateCheck(Check check1)
        {
            HttpCheck check = (HttpCheck)check1;
            check.Url = UrlTextBox.Text.Trim();
            check.CheckResponseCode = ResponseCodeCheckBox.Checked;
            try
            {
                check.ResponseCode = int.Parse(ResponseCodeTextBox.Text);
            }
            catch
            {
                throw new UpdateCheckException("Response code must be an integer.");
            }
            check.CheckResponseLength = ResponseLengthCheckbox.Checked;
            check.ResponseLengthMin = ResponseLengthMinTextBox.Text;
            check.ResponseLengthMax = ResponseLengthMaxTextBox.Text;
            check.CheckResponseBody = ResponseBodyCheckBox.Checked;
            check.ResponseBodyMatchType = (MatchType)ResponseBodyComboBox.SelectedIndex;
            check.ResponseBodyPattern = ResponseBodyTextBox.Text;
            check.ResponseBodyUseRegex = ResponseBodyRegexCheckBox.Checked;
        }
    }
}