Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
        }