public ActionResult Edit([Bind(Include = "Id,Type,RegNr,Color,Make,Model,NrOfWheels,TimeStamp")] ParkedVehicle parkedVehicle)
 {
     if (ModelState.IsValid)
     {
         db.Entry(parkedVehicle).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(parkedVehicle));
 }
 public ActionResult Edit([Bind(Include = "Id,RegNr,Color,Make,Model,NrOfWheels,TimeStamp,ParkingSlot,MemberId,VehicleTypeName")] ParkedVehicle parkedVehicle)
 {
     if (ModelState.IsValid)
     {
         db.Entry(parkedVehicle).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.MemberId        = new SelectList(db.Members, "Id", "FirstName", parkedVehicle.MemberId);
     ViewBag.VehicleTypeName = new SelectList(db.VehicleTypes, "Name", "Name", parkedVehicle.VehicleTypeName);
     return(View(parkedVehicle));
 }
        // GET: ParkedVehicles/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ParkedVehicle parkedVehicle = db.ParkedVehicles.Find(id);

            if (parkedVehicle == null)
            {
                return(HttpNotFound());
            }
            return(View(parkedVehicle));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            ParkedVehicle parkedVehicle = db.ParkedVehicles.Find(id);

            db.ParkedVehicles.Remove(parkedVehicle);
            db.SaveChanges();
            RecieptViewModel CheckOutVehicle = new RecieptViewModel
            {
                Id        = parkedVehicle.Id,
                Type      = parkedVehicle.Type,
                RegNr     = parkedVehicle.RegNr,
                TimeStamp = parkedVehicle.TimeStamp,
            };

            return(RedirectToAction("Reciept", CheckOutVehicle));
        }
        // GET: ParkedVehicles2/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ParkedVehicle parkedVehicle = db.ParkedVehicles.Find(id);

            if (parkedVehicle == null)
            {
                return(HttpNotFound());
            }
            ViewBag.MemberId        = new SelectList(db.Members, "Id", "FirstName", parkedVehicle.MemberId);
            ViewBag.VehicleTypeName = new SelectList(db.VehicleTypes, "Name", "Name", parkedVehicle.VehicleTypeName);
            return(View(parkedVehicle));
        }
        public ActionResult Park([Bind(Include = "RegNr,Color,Make,Model,NrOfWheels,MemberId,VehicleTypeName")] ParkedVehicle parkedVehicle)
        {
            if (ModelState.IsValid)
            {
                parkedVehicle.TimeStamp = DateTime.Now;
                var Slot = GetNextFreeParkingSlot(db.VehicleTypes.Where(x => x.Name == parkedVehicle.VehicleTypeName).Select(x => x.Size).FirstOrDefault());
                if (Slot >= 0)
                {
                    parkedVehicle.ParkingSlot = Slot;
                    db.ParkedVehicles.Add(parkedVehicle);
                    db.SaveChanges();
                    return(RedirectToAction("Details", "ParkedVehicles2", new { Id = parkedVehicle.Id }));
                }
                else
                {
                    Response.Write("<script type=\"text/javascript\">alert('Failed attempt to park a vehicle due to size constraints');</script>");
                }
                return(RedirectToAction("Index"));
            }

            ViewBag.MemberId        = new SelectList(db.Members, "Id", "FirstName", parkedVehicle.MemberId);
            ViewBag.VehicleTypeName = new SelectList(db.VehicleTypes, "Name", "Name", parkedVehicle.VehicleTypeName);
            return(View(parkedVehicle));
        }
        public ActionResult Create([Bind(Include = "Id,Type,RegNr,Color,Make,Model,NrOfWheels,TimeStamp")] ParkedVehicle parkedVehicle)
        {
            if (ModelState.IsValid)
            {
                var   parkedVehicles = db.ParkedVehicles.ToList();
                int[] Parkingslots   = GetParkingSlots(parkedVehicles);

                for (int i = 0; i < numberOfParkingSlots; i++)
                {
                    if (parkedVehicle.Type == Types.Lastbil || parkedVehicle.Type == Types.Buss)
                    {
                        if (i == numberOfParkingSlots)
                        {
                            GarageLimit();
                            break;
                        }
                        else
                        if (Parkingslots[i] == 0 && Parkingslots[i + 1] == 0)
                        {
                            parkedVehicle.ParkingSlot = i;
                            Park_It(parkedVehicle);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    if (parkedVehicle.Type == Types.Flygplan)
                    {
                        if (i == numberOfParkingSlots || i == numberOfParkingSlots - 1)
                        {
                            GarageLimit();
                            break;
                        }
                        else
                        if (Parkingslots[i] == 0 && Parkingslots[i + 1] == 0 && Parkingslots[i + 2] == 0)
                        {
                            parkedVehicle.ParkingSlot = i;
                            Park_It(parkedVehicle);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    if (parkedVehicle.Type == Types.Personbil)
                    {
                        if (Parkingslots[i] == 0)
                        {
                            parkedVehicle.ParkingSlot = i;
                            Park_It(parkedVehicle);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    if (parkedVehicle.Type == Types.Motorcyckel)
                    {
                        if (Parkingslots[i] < 3)
                        {
                            parkedVehicle.ParkingSlot = i;
                            Park_It(parkedVehicle);
                            return(RedirectToAction("Index"));
                        }
                    }
                }
                GarageLimit();
            }
            return(View(parkedVehicle));
        }
 private void Park_It(ParkedVehicle parkedVehicle)
 {
     parkedVehicle.TimeStamp = DateTime.Now;
     db.ParkedVehicles.Add(parkedVehicle);
     db.SaveChanges();
 }