private string TryToResolveOneLinkToInternalDnnCode(string potentialFilePath)
{
// note: this can always use the current context, because this should happen
// when saving etc. - which is always expected to happen in the owning portal
var portalInfo = PortalSettings.Current; //PortalController.Instance.GetCurrentPortalSettings();
// Try file reference
var fileInfo = FileManager.Instance.GetFile(portalInfo.PortalId, potentialFilePath);
if (fileInfo != null)
return "File:" + fileInfo.FileId;
// Try page / tab ID
var tabController = new TabController();
var tabCollection = tabController.GetTabsByPortal(portalInfo.PortalId);
var tabInfo = tabCollection.Select(tab => tab.Value)
.Where(tab => tab.TabPath == potentialFilePath)
.FirstOrDefault();
if (tabInfo != null)
return "Page:" + tabInfo.TabID;
return potentialFilePath;
}