public ActionResult DeleteBuilding([DataSourceRequest] DataSourceRequest request, BuildingModelAdmin building) { if (building != null) { if (building.Type == "Lumberjacks") { return(Json(new[] { new BuildingModelAdmin() }.ToDataSourceResult(request, ModelState))); } var context = new ApplicationDbContext(); var buildingToRemove = context.Buildings.FirstOrDefault(b => b.Id == building.Id); if (buildingToRemove != null) { var buildings = context.UsersBuildings.Where(b => b.BuildingId == building.Id); foreach (var b in buildings) { context.UsersBuildings.Remove(b); } var requiredBuildings = context.BuildingRequirements.Where(b => b.RequiredBuildingId == building.Id); foreach (var b in requiredBuildings) { context.BuildingRequirements.Remove(b); } var requiredUnits = context.UnitRequirements.Where(b => b.RequiredBuildingId == building.Id); foreach (var b in requiredUnits) { context.UnitRequirements.Remove(b); } context.Buildings.Remove(buildingToRemove); context.SaveChanges(); } } return(Json(new[] { building }.ToDataSourceResult(request, ModelState))); }
public ActionResult EditBuilding([DataSourceRequest] DataSourceRequest request, BuildingModelAdmin building) { if (building != null && ModelState.IsValid) { var context = new ApplicationDbContext(); var buildingToEdit = context.Buildings.FirstOrDefault(p => p.Id == building.Id); if (buildingToEdit != null) { buildingToEdit.Type = building.Type; buildingToEdit.WoodCost = building.WoodCost; buildingToEdit.IronCost = building.IronCost; buildingToEdit.FoodCost = building.FoodCost; buildingToEdit.PopulationCost = building.PopulationCost; buildingToEdit.BuildTime = TimeToSeconds(building.BuildTime); context.SaveChanges(); } } return(Json(new[] { building }.ToDataSourceResult(request, ModelState))); }