public static Camp CreateCamp(int user_id, DbGeography loc, string name) { using (var db = new MinionWarsEntities()) { Camp camp = new Camp(); if (user_id == -1) { camp.owner_id = null; camp.type = "neutral"; camp.name = name; camp.size = 30; camp.building_count = 3; } else { camp.owner_id = user_id; camp.type = "owned"; camp.name = name; camp.size = CalculateCampCapacity(user_id); camp.building_count = 0; bool result = CostManager.ApplyCampCost(camp.owner_id.Value); if (!result) { return(null); } } camp.location = loc; camp.mapped_type = "restaurant"; camp.richness = 0; camp.def_modifier = 0; camp.bg_id = null; db.Camp.Add(camp); db.SaveChanges(); if (user_id == -1) { List <ResourceType> res = ResourceManager.getRandomRes(); for (int i = 0; i < 2; i++) { CampTreasury ct = new CampTreasury(); ct.camp_id = camp.id; ct.amount = 100; ct.res_id = res[i].id; db.CampTreasury.Add(ct); ResourceBuilding rb = new ResourceBuilding(); Buildings building = db.Buildings.Find(res[i].id); //db.Buildings.Where(x => x.name.Contains(res[i].name.ToLower())).First(); rb.camp_id = camp.id; rb.name = building.name; rb.rtype_id = res[i].id; db.ResourceBuilding.Add(rb); } UtilityBuilding ub = new UtilityBuilding(); Buildings b2 = db.Buildings.Find(16); ub.camp_id = camp.id; ub.name = b2.name; ub.type = 2; ub.description = null; db.UtilityBuilding.Add(ub); db.SaveChanges(); } return(camp); } }