view ServerMonitor/Controls/FileCheckControl.cs @ 33:69e8ecdbbdd3

Fix schedule time not being saved on daily schedules.
author Brad Greco <brad@bgreco.net>
date Sun, 16 Jun 2019 16:55:37 -0400
parents 832a07de0f90
children
line wrap: on
line source

using System;

namespace ServerMonitorApp
{
    /// <summary>Control for editing a file check.</summary>
    [CheckType(typeof(FileCheck))]
    public partial class FileCheckControl : CheckControl
    {
        public FileCheckControl()
        {
            InitializeComponent();
        }

        private void DiskSpaceCheckControl_Load(object sender, EventArgs e)
        {
            // Initialize the combo boxes to non-empty values.
            FileSizeComparisonComboBox.SelectedIndex = 0;
            DateModifiedComparisonComboBox.SelectedIndex = 0;
        }

        /// <summary>Sets the values of the controls from a check's properties.</summary>
        public override void LoadCheck(Check check1)
        {
            FileCheck check = (FileCheck)check1;
            FileTextBox.Text = check.File;
            FileSizeCheckBox.Checked = check.CheckFileSize;
            FileSizeComparisonComboBox.SelectedIndex = check.FileSizeLessThan ? 0 : 1;
            FileSizeTextBox.Text = check.FileSizeInSelectedUnits.ToString();
            FileSizeUnitsComboBox.SelectedIndex = (int)check.FileSizeUnits;
            DateModifiedCheckBox.Checked = check.CheckDateModified;
            DateModifiedComparisonComboBox.SelectedIndex = check.DateModifiedOlderThan ? 0 : 1;
            DateModifiedTextBox.Text = check.DateModified.ToString();
            DateModifiedUnitsComboBox.SelectedIndex = (int)check.DateModifiedUnits;

            // Blank out text boxes that are disabled and have a blank-looking value.
            if (FileSizeTextBox.Text == "0" && !check.CheckFileSize)
                FileSizeTextBox.Clear();
            if (DateModifiedTextBox.Text == "0" && !check.CheckDateModified)
                DateModifiedTextBox.Clear();            
        }

        /// <summary>Updates the properties of a check from user input.</summary>
        public override void UpdateCheck(Check check1)
        {
            FileCheck check = (FileCheck)check1;
            check.File = FileTextBox.Text;
            check.CheckFileSize = FileSizeCheckBox.Checked;
            check.FileSizeLessThan = FileSizeComparisonComboBox.SelectedIndex == 0;
            try
            {
                check.FileSizeInSelectedUnits = double.Parse(FileSizeTextBox.Text);
            }
            catch
            {
                if (check.CheckFileSize)
                    throw new UpdateCheckException("File size must be numeric.");
                else
                    check.FileSizeInSelectedUnits = 0;
            }
            check.FileSizeUnits = (SizeUnits)FileSizeUnitsComboBox.SelectedIndex;
            check.CheckDateModified = DateModifiedCheckBox.Checked;
            check.DateModifiedOlderThan = DateModifiedComparisonComboBox.SelectedIndex == 0;
            try
            {
                check.DateModified = double.Parse(DateModifiedTextBox.Text);
            }
            catch
            {
                if (check.CheckDateModified)
                    throw new UpdateCheckException("Date modified must be numeric.");
                else
                    check.DateModified = 0;
            }
            check.DateModifiedUnits = (TimeUnits)DateModifiedUnitsComboBox.SelectedIndex;
        }
    }
}