Esempio n. 1
0
 public Discount disc; //об'єкт знижки
 //Конструктор з параметрами
 public Trips(DelegOutPut OutPutEvent, DelegAdd addEvent, DelegDel deleteEvent)
 {
     if (OutPutEvent != null)
     {
         Trips.OutPutEvent += OutPutEvent;
     }
     EventAdd = (addEvent != null) ? addEvent : null;
     EventDel = (deleteEvent != null) ? deleteEvent : null;
 }
Esempio n. 2
0
 //Конструктор з параметрами
 public Trips(Passeger passeger, int key_of_Passeger, double kilometrs, double priceForOneKilometr, double waitTime, double waitPrice, DelegOutPut OutPutEvent, DelegAdd addEvent, DelegDel deleteEvent)
 {
     if (kilometrs <= 0)
     {
         throw new ArgumentNullException("Hours must be more than zero!!!");
     }
     if (priceForOneKilometr <= 0)
     {
         throw new ArgumentException("Price for one kilometr must be more than zero!");
     }
     if (waitTime < 0)
     {
         throw new ArgumentNullException("wait TIME should be more or equal zero");
     }
     if (waitTime > 0 && waitPrice <= 0)
     {
         throw new ArithmeticException("Waitng price must be more than zero, when waiting time > 0");
     }
     this.kilometrs           = kilometrs;
     this.waitTime            = waitTime;
     this.priceForOneKilometr = priceForOneKilometr;
     this.waitPrice           = waitPrice;
     this.waitTime            = waitTime;
     this.key_of_passeger     = key_of_Passeger;
     passeger.countTrips     += 1;
     peo              = passeger;
     namePassenger    = peo.Name();
     sernamePassenger = peo.SerName();
     disc             = new Discount(peo.countTrips);
     if (OutPutEvent != null)
     {
         Trips.OutPutEvent += OutPutEvent;
     }
     EventAdd += (addEvent != null) ? addEvent : null;
     EventDel += (deleteEvent != null) ? deleteEvent : null;
 }
Esempio n. 3
0
        //Метод для додавання нової поїздки
        static public void AddTrip(List <Trips> NTrip, List <Passeger> passegers)
        {
            DelegOutPut OutPutToFile = OutPutListOfTripsInTheFile;

            Console.Write("Key = ");
            int key = Convert.ToInt32(Console.ReadLine());

            Console.Write("Name: ");
            string name = Console.ReadLine();

            Console.Write("Sername: ");
            string sername = Console.ReadLine();

            Console.Write("Long:");
            double Long = Convert.ToDouble(Console.ReadLine());

            if (Long <= 0)
            {
                throw new ArgumentNullException("Long must be more than zero!!!");
            }
            Console.Write("Price for one kilimert: ");
            double PriceForOneKilometr = Convert.ToDouble(Console.ReadLine());

            if (PriceForOneKilometr <= 0)
            {
                throw new ArithmeticException("Price for a one kilometrs should be more than 0!");
            }
            Console.Write("Waiting time: ");
            double waiting_time = Convert.ToDouble(Console.ReadLine());

            if (waiting_time < 0)
            {
                throw new ArgumentException("Waiting time must be >= 0");
            }
            Console.Write("Waiting price: ");
            double waiting_price = Convert.ToDouble(Console.ReadLine());

            if (waiting_price < 0)
            {
                throw new ArgumentException("Price for a waiting should be more than zero or is equal with zero!!!");
            }
            Console.Write("Do you want to describe to news about adding this trip(YES - input: true, if NO - input -false: ");
            bool     BDelegAdd = bool.Parse(Console.ReadLine());
            DelegAdd delegAdd  = null;

            if (BDelegAdd == true)
            {
                delegAdd = InfoAddTrips;
            }
            Console.Write("Do you want to describe to news about deletting this trip(YES - input: true, if NO - input -false: ");
            bool     BDelegDel = bool.Parse(Console.ReadLine());
            DelegDel delegDel  = null;

            if (BDelegDel == true)
            {
                delegDel = InfoPopTrips;
            }
            Trips.Add(passegers, NTrip, name, sername, key, Long, PriceForOneKilometr, waiting_time, waiting_price, OutPutToFile, delegAdd, delegDel);
            OutPutListOfTripsInTheFile(NTrip);
            OutPutPassegersInFile(passegers);
        }
Esempio n. 4
0
        //Додавання поїздки
        static public void Add(List <Passeger> passegers, List <Trips> NTrip, string name, string sername, int key, double Long, double PriceForOneKilometr, double waiting_time, double waiting_price, DelegOutPut OutPutEvent, DelegAdd addEvent, DelegDel deleteEvent)
        {
            bool flag = false;

            foreach (var val in passegers)
            {
                if (val.Name() == name && val.SerName() == sername && val.key == key)
                {
                    flag = true;
                    break;
                }
            }
            if (flag == false)
            {
                throw new ArgumentException("Did not find this person in list of Passegers. We recomendet to you add this person in list of passegers");
            }
            flag = false;
            foreach (var val in NTrip)
            {
                if (val.key_of_passeger == key)
                {
                    throw new ArgumentException("This person yet to drive ");
                }
            }
            flag = false;
            foreach (var Value in passegers)
            {
                if (Value.Name() == name && Value.SerName() == sername && Value.key == key)
                {
                    NTrip.Add(new Trips(Value, key, Long, PriceForOneKilometr, waiting_time, waiting_price, Trips.OutPutEvent, addEvent, deleteEvent));
                    if (OutPutEvent != null)
                    {
                        Trips.OutPutEvent = OutPutEvent;
                        Trips.OutPutEvent?.Invoke(NTrip);
                    }
                    flag = true;
                    break;
                }
            }
            if (flag == false)
            {
                throw new ArgumentException("Warning: This passeger did not find. You can to try this: add new passeger.");
            }
            Trips.EventAdd?.Invoke();
        }
Esempio n. 5
0
        //Метод для того, щоб зчитувати діні про поїздки з файлу
        public static void InputNowListOfTrips(ref List <Trips> ArrgOfTrips, List <Passeger> passegers)
        {
            DelegDel delegDel;
            DelegAdd delegAdd;

            delegAdd = InfoAddTrips;
            delegDel = InfoPopTrips;
            DelegOutPut  OutPutTOFileDeleg = OutPutListOfTripsInTheFile;
            string       pathNowTrips      = @"ListOfTrips.txt";
            FileInfo     fileInf           = new FileInfo(pathNowTrips);
            StreamReader inTrip            = new StreamReader(pathNowTrips);
            string       trees             = inTrip.ReadToEnd();
            int          files_count       = 0;
            int          lenght            = Convert.ToInt32(fileInf.Length);

            while (files_count < lenght)
            {
                int    key           = 0;
                double Long          = 0;
                double TripNowPrice  = 0;
                double waiting_time  = 0;
                double waiting_price = 0;
                string s             = "";
                char   c             = ' ';
                c            = trees[files_count];
                files_count += 1;
                s           += c;
                int k_space = 1;
                while (c != '\n' && files_count < lenght)
                {
                    c            = trees[files_count];
                    files_count += 1;
                    if (c == ' ' || files_count == lenght || c == '\n')
                    {
                        if (files_count == lenght)
                        {
                            s += c;
                        }
                        switch (k_space)
                        {
                        case 1: key = Convert.ToInt32(s); break;

                        case 2: Long = Convert.ToDouble(s); break;

                        case 3: TripNowPrice = Convert.ToDouble(s); break;

                        case 4: waiting_time = Convert.ToDouble(s); break;

                        case 5: waiting_price = Convert.ToDouble(s); break;
                        }
                        k_space += 1;
                        s        = "";
                    }
                    else
                    {
                        s += c;
                    }
                }
                for (int i = 0; i < passegers.Count(); i++)
                {
                    if (passegers[i].key == key)
                    {
                        ArrgOfTrips.Add(new Trips(passegers[i], key, Long, TripNowPrice, waiting_time, waiting_price, OutPutTOFileDeleg, delegAdd, delegDel));
                        break;
                    }
                }
            }
            inTrip.Close();
        }