view ServerMonitor/Controls/HttpCheckControl.cs @ 4:3142e52cbe69

Lots more progress
author Brad Greco <brad@bgreco.net>
date Sun, 10 Feb 2019 20:51:26 -0500
parents 9e92780ebc0f
children 7127d5b5ac75
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ServerMonitorApp
{
    [CheckType(typeof(HttpCheck))]
    public partial class HttpCheckControl : CheckControl
    {
        public HttpCheckControl()
        {
            InitializeComponent();
        }

        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;
        }

        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;
        }
    }
}