public AbstractFactoryCars FactoryMethod(AllCars CarType) { AbstractFactoryCars abstractFactoryCars = null; switch (CarType) { case AllCars.Sedan: abstractFactoryCars = new Sedan(); break; case AllCars.Hatchback: abstractFactoryCars = new Hatchback(); break; case AllCars.StationWagon: abstractFactoryCars = new StationWagon(); break; case AllCars.Suv: abstractFactoryCars = new Suv(); break; case AllCars.PicUp: abstractFactoryCars = new PicUp(); break; } return(abstractFactoryCars); }
public void Execute(AllCars allCars, int activePLID) { int heading = allCars.GetCarByPLID(activePLID).heading; int AmmountOfCars = allCars.Length(); carHeadingsDiff = new UInt16[AmmountOfCars]; for (int index = 0; index < AmmountOfCars; index++) { carHeadingsDiff[index] = (UInt16)Math.Abs(heading - allCars.GetCarByIndex(index).heading); int distance = allCars.GetCarByPLID(activePLID).GetDistanceToAnotherCar(allCars.GetCarByIndex(index)); warningColors[index] = 9; if (carHeadingsDiff[index] < 270 && carHeadingsDiff[index] > 90 && distance < 300) { warningColors[index] = 3; } if (carHeadingsDiff[index] < 210 && carHeadingsDiff[index] > 150 && distance < 300) { warningColors[index] = 1; } } //if (parameters.showDanger) { buttons.DangerAhead(_inSim, color); } else { buttons.DangerAheadClear(_inSim); } }
/// <summary> /// Функция добавления нового экземпляра авто в список станции. /// </summary> /// <param name="someCar">Экземпляр класса Car.</param> public void AddCar(Car someCar) { LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod()); //foreach (Car c in this.AllCars) // if (someCar.Number == c.Number) // { // Console.WriteLine("Авто с таким гос. номером уже зарегистрирован."); // return; // } // else if (someCar.NumberBody == c.NumberBody) // { // Console.WriteLine("Авто с таким VIN номером уже зарегистрирован."); // return; // } // AllCars.Add(someCar); Car mCar = this.AllCars.FirstOrDefault(c => c.Number == someCar.Number || c.NumberBody == someCar.NumberBody); if (mCar == null) { AllCars.Add(someCar); return; } if (someCar.Number == mCar.Number) { Console.WriteLine("Авто с таким гос. номером уже зарегистрирован."); return; } if (someCar.NumberBody == mCar.NumberBody) { Console.WriteLine("Авто с таким VIN номером уже зарегистрирован."); return; } }
/// <summary> /// Найти все свободные авто попадающие под определенные параметры. Только Таксишки! /// Работает методом исключения: сначала ищет все свободные авто /// соответствующие заданному классу комфорта; /// потом из полученного списка удаляет авто не совпадающие с заданными /// параметрами(по одному параметру за раз). /// </summary> /// <param name="smoke"></param> /// <param name="childPositions"></param> /// <param name="animals"></param> /// <param name="carClass"></param> /// <returns></returns> public List <Car> GetFreeTaxi(bool smoke, byte childPositions, bool animals, Taxi.CarClases carClass = Taxi.CarClases.Base) { LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod()); //List<Car> freeCars = new List<Car>(); //foreach (Car c in AllCars) // if ((c is Taxi) && !(c as Taxi).IsRun && (c as Taxi).CarClass == carClass) // freeCars.Add(c); //if (smoke) // foreach (Car c in freeCars.ToArray()) // if (!c.Smoke) // freeCars.Remove(c); //if (childPositions > 0) // foreach (Car c in freeCars.ToArray()) // if (c.ChildPositions < childPositions) // freeCars.Remove(c); //if (animals) // foreach (Car c in freeCars.ToArray()) // if (!c.Animals) // freeCars.Remove(c); //return freeCars; return(AllCars.Select(it => it as Taxi).Where(c => c != null && !c.IsRun && c.CarClass == carClass && c.Smoke == smoke && c.ChildPositions >= childPositions && c.Animals == animals).ToList <Car>()); }
public void RemoveSetOfRegistrationNumber(List <string> RegistrationNumbers) { foreach (var number in RegistrationNumbers) { if (AllCars.Any(x => x.RegistrationNumber == number.ToString())) { this.AllCars.RemoveAll(x => x.RegistrationNumber == number); } } }
public string RemoveCar(string registrationNumber) { if (!AllCars.Any(x => x.RegistrationNumber == registrationNumber)) { return("Car with that registration number, doesn't exist!"); } else { AllCars.Remove(AllCars.Where(x => x.RegistrationNumber == registrationNumber).FirstOrDefault()); return($"Successfully removed {registrationNumber}"); } }
private void button1_Click(object sender, EventArgs e) { AllCars uretilecekarac = (AllCars)this.comboBox1.SelectedItem; Creater creater = new Creater(); AbstractFactoryCars abstractFactoryCars = creater.FactoryMethod(uretilecekarac); abstractFactoryCars.Lastikler(); abstractFactoryCars.Motor(); abstractFactoryCars.Renk(); abstractFactoryCars.Test(); textBox1.Text += abstractFactoryCars.IslemSonuc() + " "; }
public string AddCar(Car car) { if (AllCars.Any(x => x.RegistrationNumber == car.RegistrationNumber)) { return("Car with that registration number, already exists!"); } if (Count >= Capacity) { return("Parking is full!"); } else { AllCars.Add(car); return($"Successfully added new car {car.Make } {car.RegistrationNumber}"); } }
public string AddCar(Car c) { if (c is SUV) { SUVs.Add(c); } else if (c is Van) { Vans.Add(c); } else if (c is Truck) { Trucks.Add(c); } else if (c is Sedan) { Sedans.Add(c); } AllCars.Add(c); return("Added " + c.Make + " " + c.Model + " at $" + c.Price); }
/// <summary> /// Удалить авто из списка станции, используя VIN номер. /// </summary> /// <param name="delNumber"></param> /// <returns></returns> public bool DelCarViaBodyNumber(string delNumber) { LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod()); //foreach (Car c in AllCars) // if (c.NumberBody == delNumber) // { // AllCars.Remove(c); // return true; // } //return false; Car mCar = this.AllCars.FirstOrDefault(c => c.NumberBody == delNumber); if (mCar != null) { AllCars.Remove(mCar); return(true); } return(false); }
public void Execute(Parameters parameters, AllCars allCars, Commands commands, InSimDotNet.InSim _inSim, Buttons buttons) { if (parameters.dragMode) { if (parameters.dragPickPlayer1) { dragPlayer1PLID = -1; dragPlayer2PLID = -1; player1Distance = 0; player2Distance = 0; } if (parameters.dragPickPlayer1 && parameters.playerIndexChanged) { int listID = parameters.playerIndexFromList; dragPlayer1PLID = allCars.GetCarByIndex(listID).PLID; parameters.dragPickPlayer1 = false; parameters.dragPickPlayer2 = true; parameters.playerIndexChanged = false; } if (parameters.dragPickPlayer2 && parameters.playerIndexChanged) { int listID = parameters.playerIndexFromList; dragPlayer2PLID = allCars.GetCarByIndex(listID).PLID; parameters.dragPickPlayer2 = false; parameters.dragReady = true; parameters.playerIndexChanged = false; } if (parameters.dragStarted) { bool goodStart = true; if (allCars.GetCarByPLID(dragPlayer1PLID).rawSpeed > 100) { string name = allCars.GetCarByPLID(dragPlayer1PLID).playerName; commands.SendCommandMessage(_inSim, "/msg ^7Blogas Startas: ^8" + name); goodStart = false; } if (allCars.GetCarByPLID(dragPlayer2PLID).rawSpeed > 100) { string name = allCars.GetCarByPLID(dragPlayer2PLID).playerName; commands.SendCommandMessage(_inSim, "/msg ^7Blogas Startas: ^8" + name); goodStart = false; } if (!goodStart) { parameters.dragStarted = false; } } if (parameters.dragRunning) { player1Distance += allCars.GetCarByPLID(dragPlayer1PLID).tickDistance; player2Distance += allCars.GetCarByPLID(dragPlayer2PLID).tickDistance; if (player1Distance > distanceToDrive || player2Distance > distanceToDrive) { if (player1Distance > player2Distance) { String output = "/msg " + allCars.GetCarByPLID(dragPlayer1PLID).playerName + "^7 Laimėjo"; commands.SendCommandMessage(_inSim, output); parameters.dragRunning = false; } else { String output = "/msg " + allCars.GetCarByPLID(dragPlayer2PLID).playerName + "^7 Laimėjo"; commands.SendCommandMessage(_inSim, output); parameters.dragRunning = false; } } } if (parameters.dragPrintPlayer1) { string name = "None"; if (dragPlayer1PLID != -1) { name = allCars.GetCarByPLID(dragPlayer1PLID).playerName; } commands.SendCommandMessage(_inSim, "/msg ^7Dalyvis Nr1: ^8" + name); parameters.dragPrintPlayer1 = false; } if (parameters.dragPrintPlayer2) { string name = "None"; if (dragPlayer1PLID != -1) { name = allCars.GetCarByPLID(dragPlayer2PLID).playerName; } commands.SendCommandMessage(_inSim, "/msg ^7Dalyvis Nr2: ^8" + name); parameters.dragPrintPlayer2 = false; } if (parameters.dragPrintDistance) { commands.SendCommandMessage(_inSim, "/msg ^7Drago atstumas: ^3" + distanceToDrive / 1000 + "^7 metrų"); parameters.dragPrintDistance = false; } if (parameters.dragLights) { parameters.dragLights = false; new Thread(() => { Thread.CurrentThread.IsBackground = true; DragLights(parameters, commands, _inSim); parameters.dragStarted = false; }).Start(); } string dragPlayerName1 = "None"; if (dragPlayer1PLID != -1) { dragPlayerName1 = allCars.GetCarByPLID(dragPlayer1PLID).playerName; } string dragPlayerName2 = "None"; if (dragPlayer2PLID != -1) { dragPlayerName2 = allCars.GetCarByPLID(dragPlayer2PLID).playerName; } buttons.ShowDragMenu(_inSim, parameters, dragPlayerName1, dragPlayerName2, distanceToDrive); } }
public Car GetCar(string registrationNumber) { return(AllCars.FirstOrDefault(x => x.RegistrationNumber == registrationNumber)); }
/// <summary> /// Найти авто по гос. номеру. /// </summary> /// <param name="searchNumber"></param> /// <returns></returns> public Car SearchCarViaNumber(string searchNumber) { LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod()); return(AllCars.FirstOrDefault(c => c.Number == searchNumber)); }