示例#1
0
        public bool CanDelete(DeleteTankModel tank)
        {
            if (tank.CurrentFertilizer != null || tank.CurrentLoad > 0)
            {
                throw new ArgumentException("You cannot delete this tank before it is empty");
            }

            return(true);
        }
示例#2
0
        public ActionResult ConfirmDelete(int id, DeleteTankModel model)
        {
            if (ModelState.IsValid)
            {
                var db = new WarehouseDbContext();

                var tank = db.Tanks
                           .Where(t => t.Id == id)
                           .FirstOrDefault();

                var tankCheck = new DeleteTankModel
                {
                    CurrentFertilizer = tank.CurrentFertilizer,
                    CurrentLoad       = tank.CurrentLoad,
                    CapacityLeft      = tank.MaxCapacity - tank.CurrentLoad,
                    Name = tank.Name
                };

                if (tank == null)
                {
                    return(HttpNotFound());
                }

                try
                {
                    tank.CanDelete(tankCheck);
                    db.Tanks.Remove(tank);

                    var tankOperations = db.TankOperations.Where(o => o.TankId == id).ToList();

                    foreach (var to in tankOperations)
                    {
                        db.TankOperations.Remove(to);
                    }

                    db.SaveChanges();
                    return(RedirectToAction("AllTanks"));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", $"{ex.Message}");

                    return(View(model));
                }
            }

            return(View(model));
        }