示例#1
0
        // GET: Garage
        public ActionResult CarsList()
        {
            var factory   = new GarageFactory();
            var viewModel = new CarsListViewModel(factory.Cars);

            return(View(viewModel));
        }
示例#2
0
        //public ActionResult MyProductView()
        //{
        //    var factory = new GarageFactory();
        //    var products = factory.Cars.ToList();

        //    return View(products);
        //}

        public ActionResult ProductDetails(int id)
        {
            var factory      = new GarageFactory();
            var foundProduct = factory.Cars.Where(p => p.ID == id).FirstOrDefault();

            return(View(foundProduct));
        }
示例#3
0
        // GET: Products
        public ActionResult MyProductView(string searchString)
        {
            var factory           = new GarageFactory();
            IQueryable <Car> cars = factory.Cars.OrderBy(c => c.Model);

            if (searchString != null)
            {
                cars = cars.Where(c => c.Model.Contains(searchString));
            }

            var products = cars.Take(10).ToList();

            return(View(products));
        }
        /// <summary>
        /// Metoden hanterar inmatning av kommandon från ui
        /// Hantering av inmatning av namn på garage och dess kapacitet
        /// </summary>
        /// <returns>enum MenuInputResult med olika värden beroende på användarens kommando</returns>
        private MenuInputResult HandleInput()
        {
            MenuInputResult result = MenuInputResult.NA;

            // Inläsning av namnet på garaget
            string strInput = this.Ui.ReadLine();

            if (!String.IsNullOrWhiteSpace(strInput))
            {
                strInput = strInput.Trim();
                if (strInput.StartsWith('0'))
                {// Användaren har valt att avsluta programmet. Återgå till huvudmenyn
                    result = MenuInputResult.TO_MAIN_MENU;
                }
                else
                {
                    // Nu har vi namnet på garaget
                    string strGarageName = strInput;

                    // Nu skall vi läsa in kapacitet
                    Ui.WriteLine("0. För att återgå till huvudmenyn");
                    Ui.WriteLine("Ange antal platser i garaget ");

                    int iCapacity = 0;

                    // Inläsning av garagets kapacitet
                    strInput = this.Ui.ReadLine();

                    if (!String.IsNullOrWhiteSpace(strInput))
                    {
                        strInput = strInput.Trim();

                        if (strInput.StartsWith('0'))
                        {// Användaren har valt att avsluta programmet. Återgå till huvudmenyn
                            result = MenuInputResult.TO_MAIN_MENU;
                        }
                        else
                        {
                            string strCapacity = strInput;

                            if (Int32.TryParse(strCapacity, out iCapacity) && iCapacity > 0)
                            {// Vi har en capacity
                                // Skapa ett nytt garage
                                IGarageFactory garageFactory          = new GarageFactory();
                                IGarage <ICanBeParkedInGarage> garage = garageFactory.CreateGarage(Guid.NewGuid(), strGarageName, iCapacity);

                                // Skapa en handler som skall hantera det nya garaget
                                IGarageHandler garageHandler = new Excercise5Garage.GarageHandler.GarageHandler(garage, this.Ui);

                                // Lägg till handlern till en lista med olika garagehandlers
                                this.GarageHandlers.Add(garageHandler);
                                Ui.WriteLine("Skapade garage. " + garage);

                                Ui.WriteLine("Return för att återgå till huvudmenyn");
                                this.Ui.ReadLine();
                                result = MenuInputResult.TO_MAIN_MENU;
                            }
                            else
                            {
                                result = MenuInputResult.WRONG_INPUT;
                            }
                        }
                    }
                    else
                    {
                        result = MenuInputResult.WRONG_INPUT;
                    }
                }
            }
            else
            {
                result = MenuInputResult.TO_MAIN_MENU;
            }

            return(result);
        }
        /// <summary>
        /// Metoden simulerar skapandet av ett garage.
        /// Skapande av bilar som parkerar och lämnar garaget
        /// Visar även vad som händer om garaget är full och någon vill parkera
        /// </summary>
        private void SimulateGarage()
        {
            // GetMainMenu
            Ui.WriteLine("Simulering av att skapa ett garage. Parkera fordon och fordon lämnar garaget");

            // Skapa en factory där jag kan skapa garage
            GarageFactory garageFactory = new GarageFactory();
            Guid          guid          = Guid.NewGuid();

            // Skapa ett garage
            var garage = garageFactory.CreateGarage(guid, "Första garaget", 5);

            // Skapa en GarageHandler som hantera allt om ett garage
            this.GarageHandlers.Add(new GarageHandler.GarageHandler(garage, this.Ui));

            Ui.WriteLine($"Har skapat ett nytt garage. " + garage);


            // Vid simuleringen har jag bara en garagehandler och ett garage. Hämta den handlern
            var            garageHandlers = this.GarageHandlers;
            IGarageHandler garageHandler  = garageHandlers[0];

            // Börja skapa lite fordon som parkeras i garaget
            IVehicleFactory vehicleFactory = new VehicleFactory(this.RegistrationNumberRegister);

            ICanBeParkedInGarage vehicle = vehicleFactory.CreateRandomVehicleForGarage();

            garageHandler.ParkVehicle(vehicle);

            ICanBeParkedInGarage vehicle1 = vehicleFactory.CreateRandomVehicleForGarage();

            garageHandler.ParkVehicle(vehicle1);

            ICanBeParkedInGarage vehicle2 = vehicleFactory.CreateRandomVehicleForGarage();

            garageHandler.ParkVehicle(vehicle2);

            ICanBeParkedInGarage vehicle3 = vehicleFactory.CreateRandomVehicleForGarage();

            garageHandler.ParkVehicle(vehicle3);

            ICanBeParkedInGarage vehicle4 = vehicleFactory.CreateRandomVehicleForGarage();

            garageHandler.ParkVehicle(vehicle4);

            // Garaget är fullt, men vi försöker parkera ett fordon till
            ICanBeParkedInGarage vehicle5 = vehicleFactory.CreateRandomVehicleForGarage();

            garageHandler.ParkVehicle(vehicle5);

            garageHandler.PrintInformationAboutGarage();


            // Ett fordon lämnar garaget
            garageHandler.RemoveVehicle(vehicle1);

            garageHandler.PrintInformationAboutGarage();

            // Ett fordon som inte finns i garaget lämnar
            garageHandler.RemoveVehicle(vehicle5);

            garageHandler.PrintInformationAboutGarage();

            Ui.WriteLine("Return för att fortsätta");
            Ui.ReadLine();
        }
示例#6
0
 public GarageController(GarageFactory factory, GarageInitializer initializer)
 {
     this.factory     = factory;
     this.initializer = initializer;
 }
示例#7
0
        public void TestGarage()
        {
            GarageFactory garage = new GarageFactory();

            garage.AssembleGarage();
        }
 public CarsController(GarageFactory context)
 {
     _context = context;
 }
示例#9
0
        /// <summary>
        /// Executes the instance asynchronous.
        /// </summary>
        /// <param name="items">The items.</param>
        /// <returns>
        /// The save result.
        /// </returns>
        public async Task <int> ExecuteAsync(IList <GarageDomain> items)
        {
            var databaseEntities = GarageFactory.ToEntity(_autoMapper, items);

            return(await _gateway.SaveGarageItems(databaseEntities).ConfigureAwait(false));
        }
示例#10
0
 public GarageInitializer(GarageFactory context)
 {
     this.context = context;
 }