//Метод для додавання нового пасажира static public void AddNewPasseger(List <Passeger> pass) { Console.Write("New name: "); string name = Console.ReadLine(); Console.Write("New Sername: "); string sername = Console.ReadLine(); Console.Write("Do you want to describe to news about adding this person(YES - input: true, if NO - input -false: "); bool BDelegAdd = bool.Parse(Console.ReadLine()); DelegAdd delegAdd = null; if (BDelegAdd == true) { delegAdd = InfoAddPassegers; } Console.Write("Do you want to describe to news about deletting this person(YES - input: true, if NO - input -false: "); bool BDelegDel = bool.Parse(Console.ReadLine()); DelegDel delegDel = null; if (BDelegDel == true) { delegDel = InfoPopPassegers; } Passeger.Add(pass, name, sername, delegAdd, delegDel); OutPutPassegersInFile(pass); }
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; }
//Метод для додавання нового водія static public void AddNewWorker(List <Workers> workers) { Console.Write("New name: "); string name = Console.ReadLine(); Console.Write("New Sername: "); string sername = Console.ReadLine(); Console.Write("salaryInOur: "); double salary = Convert.ToDouble(Console.ReadLine()); if (salary <= 0) { throw new ArgumentNullException("Salary must be more than zero!!!"); } Console.Write("Date of starting: "); DateTime timeOfStarting = DateTime.Parse(Console.ReadLine()); Console.Write("Date of finishing: "); DateTime timeOfFinishing = DateTime.Parse(Console.ReadLine()); Console.Write("Do you want to describe to news about adding this person(YES - input: true, if NO - input -false: "); bool BDelegAdd = bool.Parse(Console.ReadLine()); DelegAdd delegAdd = null; if (BDelegAdd == true) { delegAdd = InfoAddWorkers; } Console.Write("Do you want to describe to news about deletting this person(YES - input: true, if NO - input -false: "); bool BDelegDel = bool.Parse(Console.ReadLine()); DelegDel delegDel = null; if (BDelegDel == true) { delegDel = InfoPopWorkers; } Workers.Add(workers, name, sername, salary, timeOfStarting, timeOfFinishing, delegDel, delegAdd); OutPutWorkersInFile(workers); }
//Додавання нового водія(робітника) public static void Add(List <Workers> workers, string name, string sername, double salary, DateTime timeOfStarting, DateTime timeOfFinishing, DelegDel delF, DelegAdd addF) { int countofList = workers[workers.Count() - 1].key; workers.Add(new Workers(addF, delF) { key = countofList + 1, name = name, sername = sername, salaryInOur = salary, timeStart = timeOfStarting, timeFinish = timeOfFinishing }); Workers.EventAdd?.Invoke(); }
} //значення ключа //Конструктор з параметрами public Workers(DelegAdd eventAdd, DelegDel eventDelete) { Workers.EventDelete = (eventDelete != null) ? eventDelete : null; Workers.EventAdd = (eventAdd != null) ? eventAdd : null; }
//Додавання пасажира public static void Add(List <Passeger> pass, string name, string sername, DelegAdd addEvent, DelegDel deleteEvent) { int countofList = pass[pass.Count() - 1].key + 1; pass.Add(new Passeger(name, sername, 0, countofList, addEvent, deleteEvent)); Passeger.EventAdd?.Invoke(); }
//Конструктор public Passeger(string name, string sername, int countTrips, int key, DelegAdd addEvent, DelegDel deleteEvent) { if (name.Length == 0 || name == null || sername.Length == 0 || sername == null) { throw new ArgumentNullException("String of name has a lenght with is equal to null!"); } if (countTrips < 0) { throw new ArgumentException("count of trips this passeger must be more or equal zero"); } this.name = name; this.sername = sername; this.countTrips = countTrips; this.key = key; EventAdd = (addEvent != null) ? addEvent : null; EventDel = (deleteEvent != null) ? deleteEvent : null; }
//Конструктор з параметрами 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; }
//Додавання поїздки 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(); }
//Метод для додавання нової поїздки 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); }