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)));
 }