static void ClientReg() { for (; ;) { Console.Clear(); Console.WriteLine("Регистрация клиента."); Console.Write("Введите фамилию:"); string ClientSurname = Console.ReadLine(); Console.Write("Введите имя: "); string ClientName = Console.ReadLine(); Console.Write("Введите отчество: "); string ClientPatronymic = Console.ReadLine(); Console.WriteLine("Выберите тариф"); ArrayList TarifList = ShowTarif(); int choice = int.Parse(Console.ReadLine()); TarifList.ToArray(); Tarif tar = new Tarif(TarifList[choice - 1].ToString()); Console.WriteLine("Введите расстояние для перевозки(км)"); double distance = double.Parse(Console.ReadLine()); try { if (tar.DiscontType == "$" && (distance * tar.PriceForKm - tar.DiscontSize) < 0)//исключение с отрицательной стоимостью заказа { throw new Exception("У данного заказа отрицательная стоимость! Оформление отклонено!"); } } catch (Exception err) { Console.WriteLine(err.Message); return; } string CurrentOrder = ClientSurname + "|" + ClientName + "|" + ClientPatronymic + "|" + tar.ToString() + "|" + distance; FileStream fs; if (File.Exists(@".\database.txt")) { fs = new FileStream(@".\database.txt", FileMode.Append); } else { fs = new FileStream(@".\database.txt", FileMode.Create); } StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); sw.WriteLine(CurrentOrder); sw.Close(); fs.Close(); Console.WriteLine("Ваш заказ успешно добавлен!"); break; } }
static ArrayList ShowTarif() { string[] line = File.ReadAllLines(@".\tarif.txt"); int counter = 0; ArrayList TarifList = new ArrayList(); foreach (string a in line) { Tarif NewTarif = new Tarif(a); TarifList.Add(NewTarif); } foreach (Tarif tar in TarifList) { counter++; Console.WriteLine("{0}.Тариф '{1}' - {2} $ за км скидка {3}{4}", counter, tar.TarifName, tar.PriceForKm, tar.DiscontSize, tar.DiscontType); } return(TarifList); }
static void NewTarifEnter()//метод для ввода нового тарифа { Console.WriteLine("Введите название тарифа"); string TarifName = null; ArrayList TarifList = new ArrayList(); string[] tmp = ShowTarifTable(); foreach (string a in tmp) { Tarif NewTarif = new Tarif(a); TarifList.Add(NewTarif); } try { TarifName = Console.ReadLine(); TarifName = TarifName.Trim(); if (TarifName.Length < 1) { throw new Exception("Недопустим ввод пустой строки вместо имени тарифа!!!"); //проверка ввода названия тарифа } foreach (Tarif tar in TarifList) //исключение, если введена пустая строка { if (tar.TarifName == TarifName) { throw new Exception("Тариф с таким именем уже существует!");//исключение, если такой тариф уже есть } } } catch (Exception err) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.BackgroundColor = ConsoleColor.White; Console.WriteLine(err.Message + " Попробуйте ещё раз..."); Console.ResetColor(); return; } Console.WriteLine("Введите цену за 1 км: "); double PriceForKm = double.Parse(Console.ReadLine()); Console.WriteLine("Скидка в процентах?(нажмите 'ESC', если нет. Для подтверждения нажмите любую клавишу.)"); ConsoleKeyInfo key = new ConsoleKeyInfo(); key = Console.ReadKey(); double DiscontSize = 0; string DiscontType; if ((key.KeyChar) == 27) { DiscontType = "$"; Console.WriteLine("Введите скидку в $"); DiscontSize = double.Parse(Console.ReadLine()); } else { DiscontType = "%"; Console.WriteLine("Введите процент скидки"); DiscontSize = double.Parse(Console.ReadLine()); if (DiscontSize >= 50) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.BackgroundColor = ConsoleColor.White; Console.WriteLine("ПРИ ТАКОЙ СКИДКЕ НЕЛЬЗЯ РАБОТАТЬ!!! ЭТО ОДНИ УБЫТКИ!!! \n Вернитесь в предыдущее меню и подумайте хорошенько..."); Console.ResetColor(); return; } } string data = TarifName + "|" + PriceForKm + "|" + DiscontType + "|" + DiscontSize; FileStream fs; if (File.Exists(@".\tarif.txt")) { fs = new FileStream(@".\tarif.txt", FileMode.Append); } else { fs = new FileStream(@".\tarif.txt", FileMode.Create); } StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); sw.WriteLine(data); sw.Close(); fs.Close(); Console.WriteLine("Тариф успешно добавлен!"); //Tarif AddingTarif = new Tarif(); return; }