using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Text.RegularExpressions; namespace WpfApp1 { /// /// Логика взаимодействия для MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Tarif1.IsChecked = true; SwerhNormText.Visibility = Visibility.Hidden; } //метод проверки на ввод данных public bool IsInputValid(string input) { return !string.IsNullOrEmpty(input) && Regex.IsMatch(input, @"^\d+$") && !Regex.IsMatch(input, @"[а-яА-Я]"); } private void Button_Click(object sender, RoutedEventArgs e) { try { string MinLikeText = MinTime.Text; // Используем новый метод для проверки ввода if (!IsInputValid(MinLikeText)) { throw new Exception("Вводить можно только цифры и поле не должно быть пустым."); } int MinLikeInt = Convert.ToInt32(MinLikeText); string Tarif = ""; //тариф 1 if (Tarif1.IsChecked == true) { Tarif = "Тариф 1"; //более нормы if(MinLikeInt > 200) { SwerhNormText.Visibility = Visibility.Visible; //расчёт тарифа int BoleeTarifa = MinLikeInt - 200; double NormaPotarifu = BoleeTarifa * 1.6; double Summ = (200 * 0.7) + NormaPotarifu; //вывод данных SwerhNormText.Content = "Минуты свверх установленной нормы: " + BoleeTarifa + " мин."; SummText.Content = "К оплате: " + Summ + " руб."; } //в норме else { double NormaPotarifu = MinLikeInt * 0.7; SwerhNormText.Visibility = Visibility.Hidden; SummText.Content = "К оплате: " + NormaPotarifu + " руб."; } } //тариф 2 else { Tarif = "Тариф 2"; //более нормы if (MinLikeInt > 100) { SwerhNormText.Visibility = Visibility.Visible; //расчёт тарифа int BoleeTarifa = MinLikeInt - 100; double NormaPotarifu = BoleeTarifa * 1.6; double Summ = (100 * 0.3) + NormaPotarifu; //вывод данных SwerhNormText.Content = "Минуты свверх установленной нормы: " + BoleeTarifa + " мин."; SummText.Content = "К оплате: " + Summ + " руб."; } //в норме else { double NormaPotarifu = MinLikeInt * 0.3; SwerhNormText.Visibility = Visibility.Hidden; SummText.Content = "К оплате: " + NormaPotarifu + " руб."; } } } catch (Exception ex) { // Отображаем сообщение об ошибке MessageBox.Show(ex.Message); } } } }