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 }