Example #1
0
 public void SaveVehicle()
 {
     vehicleRepository.Commit();
 }
Example #2
0
        public IActionResult Create([Bind("Id,RegisterNr,Color,Brand,Model,ParkeringSpaceId, VehicleOwnersId,VehicleTypeName")] Vehicle vehicle)
        {
            ViewBag.FreeParkSpace  = _vehicleRepository.Count();
            ViewBag.GarageCapacity = parkingCapacity;
            double TotalParkingMinutes = 0;
            //Check if register nr is char
            string IsChar = "";
            //Check if register nr is char
            string IsDigit = "";
            //Result of register number
            string reg_nr = "";

            if (_vehicleRepository.Count() == parkingCapacity)
            {
                ViewBag.NoFreeParkSpace = parkingCapacity;
                // No Vehicle instans is passade to this view just ViewBag
                return(View("ViewVehiclePark", vehicle));
            }
            else if (_vehicleRepository.Count() < parkingCapacity)
            {
                //Validate swedish car register number "GHK123"

                for (int i = 0; i < vehicle.RegisterNr.Length; i++)
                {
                    if (char.IsLetter(vehicle.RegisterNr[0]) && (char.IsLetter(vehicle.RegisterNr[1])) && char.IsLetter(vehicle.RegisterNr[2]))
                    {
                        IsChar = vehicle.RegisterNr[0] + vehicle.RegisterNr[1].ToString() + vehicle.RegisterNr[2].ToString();
                    }

                    if (char.IsDigit(vehicle.RegisterNr[3]) && (char.IsDigit(vehicle.RegisterNr[4])) && char.IsDigit(vehicle.RegisterNr[5]))
                    {
                        IsDigit = vehicle.RegisterNr[3].ToString() + vehicle.RegisterNr[4].ToString() + vehicle.RegisterNr[5].ToString();
                    }
                }

                reg_nr                   = IsChar + IsDigit;
                vehicle.RegisterNr       = reg_nr; //We have now validate the car register nummber
                vehicle.ParkingTime      = DateTime.Now;
                vehicle.ParkeringSpaceId = ParkingAvailablity();


                var VehicleExist = _vehicleRepository.GetAllEntities().Any(v => v.RegisterNr == vehicle.RegisterNr);

                if (VehicleExist)
                {
                    ModelState.AddModelError("Registration Number", "Registration number already exist.");
                }

                try
                {
                    if (ModelState.IsValid)
                    {
                        TotalParkingMinutes = Math.Round(TotalParkingMinutes + (DateTime.Now - vehicle.ParkingTime).TotalMinutes);
                        _vehicleRepository.AddEntity(vehicle);
                        _vehicleRepository.Commit();

                        return(RedirectToAction("CheckIn", "Vehicles"));
                    }
                }
                catch (DbUpdateException ex)
                {
                    ModelState.AddModelError("Creating vehicles", "Unable to save changes in the database vehicle obj " +
                                             "Try again, and if the problem persists " + ex.Message);
                }
            }
            else
            {
                ModelState.AddModelError("Faile", "Fail to park cars in garage!!!");
            }

            ViewBag.VehicleOwnersId = new SelectList(_ownerRepository.GetAllEntities(), "Id", "Name", vehicle.VehicleOwnersId);
            ViewBag.VehicleTypeName = new SelectList(_vehicleTypeRepository.GetAllEntities(), "Id,Name", vehicle.VehicleTypeName);

            ViewBag.NoFreeParkSpace    = _vehicleRepository.Count();
            ViewBag.GarageCapacity     = parkingCapacity;
            ViewBag.TotalParkingValues = (TotalParkingMinutes * 60) / 60;

            return(View(vehicle));
        }