public async Task <IActionResult> ParkVehicle([Bind("Id,Type,RegNr,Color,Brand,Model,NoWheels,FreeText")] ParkVehicleViewModel parkVehicleModel)
        {
            Vehicle vehicle = new Vehicle();

            if (RegNoIsParked(parkVehicleModel.RegNr))
            {
                ModelState.AddModelError("RegNr", "Det finns redan ett fordon med det här registreringsnumret i garaget");
            }

            if (ModelState.IsValid)
            {
                vehicle.Id       = parkVehicleModel.Id;
                vehicle.RegNr    = parkVehicleModel.RegNr;
                vehicle.Color    = parkVehicleModel.Color;
                vehicle.Brand    = parkVehicleModel.Brand;
                vehicle.Model    = parkVehicleModel.Model;
                vehicle.NoWheels = parkVehicleModel.NoWheels;
                vehicle.ParkedIn = DateTime.Now;

                db.Add(vehicle);
                await db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            // Provide error feed-back
            return(View(parkVehicleModel));
        }
Exemplo n.º 2
0
        public IActionResult ParkVehicle(ParkVehicleViewModel viewModel)
        {
            var level = _levelRepository.GetById(viewModel.ParkingLevelId);

            if (level == null)
            {
                return(NotFound());
            }

            var licensePlate = LicensePlate.Create(viewModel.Vehicle.LicensePlate);

            if (!licensePlate.IsSuccess)
            {
                return(BadRequest(licensePlate.ErrorMessage));
            }

            var vehicle = Vehicle.Create(licensePlate.Value, viewModel.Vehicle.Weight);

            if (!vehicle.IsSuccess)
            {
                return(BadRequest(vehicle.ErrorMessage));
            }

            var result = level.ParkVehicle(viewModel.ParkingSpaceNumber, vehicle.Value);

            if (!result.IsSuccess)
            {
                return(BadRequest(result.ErrorMessage));
            }

            _context.SaveChanges();

            return(RedirectToAction(nameof(ParkingController.Edit), "Parking", new { id = level.Parking.Id }));
        }
Exemplo n.º 3
0
        public IActionResult ParkVehicle(int parkingLevelId, int parkingSpaceNumber)
        {
            var viewModel = new ParkVehicleViewModel
            {
                ParkingLevelId     = parkingLevelId,
                ParkingSpaceNumber = parkingSpaceNumber
            };

            return(View(viewModel));
        }
        // GET: ParkedVehicles/Create
        public ActionResult Create()
        {
            ParkVehicleViewModel model = new ParkVehicleViewModel()
            {
                VehicleTypeSelectList = db.VehicleTypes,    //GetVehicleTypeSelectList(),
                MemberFound           = false,
                Post = false
            };

            return(View(model));
        }
        public ActionResult Edit([Bind(Include = "RegistrationNumber,Type,Color,Brand,Wheels,SelectedVehicleTypeId")] ParkVehicleViewModel model)
        {
            ParkedVehicle parkedVehicle = new ParkedVehicle
            {
                RegistrationNumber = model.RegistrationNumber.ToUpper(),
                Color         = model.Color,
                Brand         = model.Brand,
                Wheels        = model.Wheels,
                VehicleTypeId = model.SelectedVehicleTypeId
            };

            if (ModelState.IsValid)
            {
                db.Entry(parkedVehicle).State = EntityState.Modified;
                db.Entry(parkedVehicle).Property(x => x.ParkingTime).IsModified = false;
                db.Entry(parkedVehicle).Property(x => x.MembersId).IsModified   = false;
                //db.Entry(parkedVehicle).Property(x => x.VehicleTypeId).IsModified = false;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(parkedVehicle));
        }
        public ActionResult Create([Bind(Include = "FirstName,LastName,RegistrationNumber,Color,Brand,Wheels,ParkingTime,SelectedVehicleTypeId")] ParkVehicleViewModel model)
        {
            model.Post = true;
            model.VehicleTypeSelectList = db.VehicleTypes;
            if (db.ParkedVehicle.Any(v => v.RegistrationNumber == model.RegistrationNumber))
            {
                ModelState.AddModelError("RegistrationNumber", "registration number exist");
                model.RegNrTaken = true;
                //return View(model);
            }

            var foundMember = GetMember(model.FirstName, model.LastName);

            if (foundMember == null)
            {
                model.MemberFound = false;
                return(View(model));
            }
            model.MemberFound = true;

            if (ModelState.IsValid)
            {
                ParkedVehicle parkedVehicle = new ParkedVehicle
                {
                    RegistrationNumber = model.RegistrationNumber.ToUpper(),
                    Color         = model.Color,
                    Brand         = model.Brand,
                    Wheels        = model.Wheels,
                    ParkingTime   = DateTime.Now,
                    MembersId     = foundMember.Id,
                    VehicleTypeId = model.SelectedVehicleTypeId
                };
                db.ParkedVehicle.Add(parkedVehicle);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
        // GET: ParkedVehicles/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ParkedVehicle parkedVehicle = db.ParkedVehicle.Find(id);

            if (parkedVehicle == null)
            {
                return(HttpNotFound());
            }
            ParkVehicleViewModel model = new ParkVehicleViewModel
            {
                RegistrationNumber = parkedVehicle.RegistrationNumber,
                Brand  = parkedVehicle.Brand,
                Color  = parkedVehicle.Color,
                Wheels = parkedVehicle.Wheels,
                VehicleTypeSelectList = db.VehicleTypes
            };

            return(View(model));
        }