BusynessNotification

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

MainWindow.xaml.cs (8032B)


      1 using System.Windows;
      2 using System.Windows.Controls;
      3 using System.Text.Json;
      4 using System.Diagnostics;
      5 using Microsoft.Extensions.Configuration;
      6 using System.IO;
      7 using Microsoft.Toolkit.Uwp.Notifications;
      8 
      9 namespace BusynessNotification
     10 {
     11     /// <summary>
     12     /// Interaction logic for MainWindow.xaml
     13     /// </summary>
     14     public partial class MainWindow : Window
     15     {
     16         bool CheckCPU = true;
     17         bool CheckMemory = true;
     18         bool CheckDisk = true;
     19 
     20         double SliderCPU = 50;
     21         double SliderMemory = 50;
     22         double SliderDisk = 50;
     23 
     24         double SecCPU = 5;
     25         double SecMemory = 5;
     26         double SecDisk = 5;
     27         public MainWindow()
     28         {
     29             InitializeComponent();
     30 
     31             ///設定値の読み取り
     32             var configuration = new ConfigurationBuilder()
     33                 .AddJsonFile("SettingJson.json")
     34                 .Build();
     35 
     36             try
     37             {
     38                 CheckCPU = Convert.ToBoolean(configuration["CheckCPU"]);
     39                 CheckMemory = Convert.ToBoolean(configuration["CheckMemory"]);
     40                 CheckDisk = Convert.ToBoolean(configuration["CheckDisk"]);
     41 
     42                 SliderCPU = Convert.ToDouble(configuration["SliderCPU"]);
     43                 SliderMemory = Convert.ToDouble(configuration["SliderMemory"]);
     44                 SliderDisk = Convert.ToDouble(configuration["SliderDisk"]);
     45 
     46                 SecCPU = Convert.ToDouble(configuration["SecCPU"]);
     47                 SecMemory = Convert.ToDouble(configuration["SecMemory"]);
     48                 SecDisk = Convert.ToDouble(configuration["SecDisk"]);
     49             }
     50             catch (Exception)
     51             {
     52                 string messageBoxText = "Please try to set this app expect on secur app";
     53                 string caption = "Failed to get setting";
     54                 MessageBoxButton button = MessageBoxButton.OK;
     55                 MessageBoxImage icon = MessageBoxImage.Warning;
     56 
     57                 System.Windows.MessageBox.Show(messageBoxText, caption, button, icon);
     58             }
     59 
     60             ///取得した値をUIに適応
     61             CPUcheck.IsChecked = CheckCPU;
     62             Memorycheck.IsChecked = CheckMemory;
     63             Diskcheck.IsChecked = CheckDisk;
     64 
     65             CPUSlider.Value = SliderCPU;
     66             MemorySlider.Value = SliderMemory;
     67             DiskSlider.Value = SliderDisk;
     68 
     69             TextBox_CPUSlider.Text = SliderCPU.ToString();
     70             TextBox_DiskSlider.Text = SliderMemory.ToString();
     71             TextBox_DiskSlider.Text = SliderDisk.ToString();
     72 
     73             CPUSecTextBox.Text = SecCPU.ToString();
     74             MemorySecTextBox.Text = SecMemory.ToString();
     75             DiskSecTextBox.Text = SecDisk.ToString();
     76         }
     77 
     78         private void TextBox_CPUSlider_TextChanged(object sender, TextChangedEventArgs e)
     79         {
     80             SliderCPU = InputNormalizerToDouble(TextBox_CPUSlider.Text, SliderCPU);
     81             TextBox_CPUSlider.Text = SliderCPU.ToString();
     82             CPUSlider.Value = SliderCPU;
     83         }
     84 
     85         private void TextBox_MemorySlider_TextChanged(object sender, TextChangedEventArgs e)
     86         {
     87             SliderMemory = InputNormalizerToDouble(TextBox_MemorySlider.Text, SliderMemory);
     88             TextBox_MemorySlider.Text = SliderMemory.ToString();
     89             MemorySlider.Value = SliderMemory;
     90         }
     91         private void TextBox_DiskSlider_TextChanged(object sender, TextChangedEventArgs e)
     92         {
     93             SliderDisk = InputNormalizerToDouble(TextBox_DiskSlider.Text.ToString(), SliderDisk);
     94             TextBox_DiskSlider.Text = SliderDisk.ToString();
     95             DiskSlider.Value = SliderDisk;
     96         }
     97 
     98         private void CPUSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
     99         {
    100             SliderCPU = Math.Round(CPUSlider.Value);
    101             CPUSlider.Value = SliderCPU;
    102             TextBox_CPUSlider.Text = SliderCPU.ToString();
    103         }
    104         private void MemorySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    105         {
    106             SliderMemory = Math.Round(MemorySlider.Value);
    107             MemorySlider.Value = SliderMemory;
    108             TextBox_MemorySlider.Text = SliderMemory.ToString();
    109         }
    110 
    111         private void DiskSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    112         {
    113             SliderDisk = Math.Round(DiskSlider.Value);
    114             DiskSlider.Value = SliderDisk;
    115             TextBox_DiskSlider.Text = SliderDisk.ToString();
    116         }
    117 
    118         private void CPUSecTextBox_TextChanged(object sender, TextChangedEventArgs e)
    119         {
    120             SecCPU = InputNormalizerToDouble(CPUSecTextBox.Text, SecCPU);
    121             CPUSecTextBox.Text = SecCPU.ToString();
    122         }
    123 
    124         private void MemorySecTextBox_TextChanged(object sender, TextChangedEventArgs e)
    125         {
    126             SecMemory = InputNormalizerToDouble(MemorySecTextBox.Text, SecMemory);
    127             MemorySecTextBox.Text = SecMemory.ToString();
    128         }
    129 
    130         private void DiskSecTextBox_TextChanged(object sender, TextChangedEventArgs e)
    131         {
    132             SecDisk = InputNormalizerToDouble(DiskSecTextBox.Text.ToString(), SecDisk);
    133             DiskSecTextBox.Text = SecDisk.ToString();
    134         }
    135 
    136         private void SaveSettingButton_Click(object sender, RoutedEventArgs e)
    137         {
    138             try
    139             {
    140                 SettingJson data = new()
    141                 {
    142                     CheckCPU = Convert.ToBoolean(CPUcheck.IsChecked),
    143                     CheckMemory = Convert.ToBoolean(Memorycheck.IsChecked),
    144                     CheckDisk = Convert.ToBoolean(Diskcheck.IsChecked),
    145                     SliderCPU = SliderCPU,
    146                     SliderMemory = SliderMemory,
    147                     SliderDisk = SliderDisk,
    148                     SecCPU = SecCPU,
    149                     SecMemory = SecMemory,
    150                     SecDisk = SecDisk
    151                 };
    152 
    153                 string jsonStr = JsonSerializer.Serialize(data);
    154                 File.WriteAllText(@"SettingJson.json", jsonStr);
    155                 Debug.WriteLine(jsonStr);
    156             }
    157             catch (Exception ex)
    158             {
    159                 string messageBoxText = "Please try to set this app expect on secur app.(Exception number: " + ex + ")";
    160                 string caption = "Failed to save setting";
    161                 MessageBoxButton button = MessageBoxButton.OK;
    162                 MessageBoxImage icon = MessageBoxImage.Warning;
    163 
    164                 System.Windows.MessageBox.Show(messageBoxText, caption, button, icon);
    165             }
    166             finally
    167             {
    168                 string messageBoxText = "Saving setting prosess is finished";
    169                 string caption = "Finish saving setting prosess";
    170                 MessageBoxButton button = MessageBoxButton.OK;
    171                 MessageBoxImage icon = MessageBoxImage.Information;
    172 
    173                 System.Windows.MessageBox.Show(messageBoxText, caption, button, icon);
    174             }
    175         }
    176 
    177         static double InputNormalizerToDouble(string input,double oldValue)
    178         {
    179             if(input == null || input == ""){
    180                 return oldValue;
    181             }
    182             bool NormalizationCan = double.TryParse(input, out double value);
    183             if (NormalizationCan == false || value < 0 || value > 100)
    184             {
    185                 string messageBoxText = "Please enter up to 100";
    186                 string caption = "unexpected input";
    187                 MessageBoxButton button = MessageBoxButton.OK;
    188                 MessageBoxImage icon = MessageBoxImage.Warning;
    189 
    190                 System.Windows.MessageBox.Show(messageBoxText, caption, button, icon);
    191                 return oldValue;
    192             }
    193             else
    194             {
    195                 return value;
    196             }
    197         }
    198 
    199         private void TestNotify_Click(object sender, RoutedEventArgs e)
    200         {
    201             new ToastContentBuilder()
    202                 .AddText("Byssyness Notification")
    203                 .AddText("Test Notify is here")
    204                 .Show();
    205         }
    206     }
    207 }