void StructureManager::_HandleStructureRedeedCallBack(StructureManagerAsyncContainer* asynContainer,DatabaseResult* result)
{
	PlayerStructure* structure = dynamic_cast<PlayerStructure*>(gWorldManager->getObjectById(asynContainer->mStructureId));

	//if its a playerstructure boot all players and pets inside
	HouseObject* house = dynamic_cast<HouseObject*>(structure);
	if(house)
	{
		house->prepareDestruction();
	}
	

	//destroy the structure here so the sf can still access the relevant data
	gObjectFactory->deleteObjectFromDB(structure);
	gMessageLib->sendDestroyObject_InRangeofObject(structure);

	gWorldManager->destroyObject(structure);
	

	PlayerObject* player = dynamic_cast<PlayerObject*>(gWorldManager->getObjectById(asynContainer->mPlayerId));

	uint64 deedId;
	DataBinding* binding = mDatabase->CreateDataBinding(1);
	binding->addField(DFT_uint64,0,8);

	uint64 count;
	count = result->getRowCount();

	if (!count)
	{
		gLogger->logMsgLoadFailure("StructureManager::create deed no result...",MSG_NORMAL);
		mDatabase->DestroyDataBinding(binding);
		return;
	}
	result->GetNextRow(binding,&deedId);

	//return value of 0 means something wasnt found
	if(!deedId)
	{
		gLogger->logMsgF("StructureManager::create deed no valid return value...",MSG_NORMAL);
		mDatabase->DestroyDataBinding(binding);
		return;
	}
	//returnvalue of 1 means that there wasnt enough money on the deed
	if(deedId == 1)
	{
		gLogger->logMsgF("StructureManager::create deed with not enough maintenance...",MSG_NORMAL);
		gMessageLib->sendSysMsg(player, "player_structure","structure_destroyed ");	
		mDatabase->DestroyDataBinding(binding);
		return;
	}

	if(player)
	{
		//load the deed into the inventory
		Inventory* inventory = dynamic_cast<Inventory*>(player->getEquipManager()->getEquippedObject(CreatureEquipSlot_Inventory));
		if(inventory)
		{
			//15 is itemfamily for deeds
			gObjectFactory->createIteminInventory(inventory,deedId,TanGroup_Item);
		}
	}

	UpdateCharacterLots(asynContainer->mPlayerId);

	mDatabase->DestroyDataBinding(binding);
}