コード例 #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            TripAddress tripAddress = db.TripAddresses.Find(id);

            db.TripAddresses.Remove(tripAddress);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #2
0
 public ActionResult Edit([Bind(Include = "Id,AddressId,TripId,Num")] TripAddress tripAddress)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tripAddress).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AddressId = new SelectList(db.Addresses, "Id", "Address1", tripAddress.AddressId);
     ViewBag.TripId    = new SelectList(db.Trips, "Id", "Route", tripAddress.TripId);
     return(View(tripAddress));
 }
コード例 #3
0
        // GET: TripAddresses/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TripAddress tripAddress = db.TripAddresses.Find(id);

            if (tripAddress == null)
            {
                return(HttpNotFound());
            }
            return(View(tripAddress));
        }
コード例 #4
0
        // GET: TripAddresses/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TripAddress tripAddress = db.TripAddresses.Find(id);

            if (tripAddress == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AddressId = new SelectList(db.Addresses, "Id", "Address1", tripAddress.AddressId);
            ViewBag.TripId    = new SelectList(db.Trips, "Id", "Route", tripAddress.TripId);
            return(View(tripAddress));
        }
コード例 #5
0
        public ActionResult Create([Bind(Include = "Id,DriverId,CarId,Route,Date")] Trip trip, string ids)
        {
            string[]   idsString     = ids.Split(',');
            List <int> orderIds      = new List <int>();
            int        cargoesWeight = 0;

            foreach (var k in idsString)
            {
                int o = int.Parse(k);
                orderIds.Add(o);
                var ord = this.db.Orders.Where(x => x.Id == o).First();
                cargoesWeight += ord.Cargoes.Sum(x => x.Weight).Value;
            }

            int carCapacity = this.db.Cars.Where(x => x.Id == trip.CarId).First().Capacity;

            if (cargoesWeight > carCapacity)
            {
                ModelState.AddModelError("", "Груз превышает грузоподъемность автомобиля");
                ViewBag.CarId    = new SelectList(db.Cars, "Id", "Name");
                ViewBag.DriverId = new SelectList(db.Drivers, "Id", "Name");
                ViewBag.ids      = ids;
                return(View(trip));
            }

            var car = this.db.Cars.Where(x => x.Id == trip.CarId).First();

            if (car.Trips.Count > 0)
            {
                ModelState.AddModelError("", "Выбранный автомобиль занят на другом рейсе");
                ViewBag.CarId    = new SelectList(db.Cars, "Id", "Name");
                ViewBag.DriverId = new SelectList(db.Drivers, "Id", "Name");
                ViewBag.ids      = ids;
                return(View(trip));
            }

            var driver = this.db.Drivers.Where(x => x.Id == trip.DriverId).First();

            if (driver.Trips.Count > 0)
            {
                ModelState.AddModelError("", "Выбранный водитель занят на другом рейсе");
                ViewBag.CarId    = new SelectList(db.Cars, "Id", "Name");
                ViewBag.DriverId = new SelectList(db.Drivers, "Id", "Name");
                ViewBag.ids      = ids;
                return(View(trip));
            }



            if (ModelState.IsValid)
            {
                db.Trips.Add(trip);
                db.SaveChanges();

                string[] idss = ids.Split(',');
                foreach (var id in idss)
                {
                    int curId = int.Parse(id);
                    var order = db.Orders.Where(x => x.Id == curId).First();
                    foreach (var address in order.Addresses)
                    {
                        TripAddress ta = new TripAddress();
                        //ta.Address = address;
                        ta.AddressId = address.Id;
                        ta.TripId    = trip.Id;
                        db.TripAddresses.Add(ta);
                        db.SaveChanges();
                    }
                }
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            ViewBag.CarId    = new SelectList(db.Cars, "Id", "Name", trip.CarId);
            ViewBag.DriverId = new SelectList(db.Drivers, "Id", "Name", trip.DriverId);
            return(View(trip));
        }