public bool IsUniqueFilename()
{
string theFileName = this.FileName;
theFileName = ContentPageHelper.ScrubFilename(this.Root_ContentID, theFileName);
theFileName = theFileName.ToLowerInvariant();
if (SiteData.IsPageSpecial(theFileName) || SiteData.IsLikelyHomePage(theFileName)) {
return false;
}
if (SiteData.CurrentSite.GetSpecialFilePathPrefixes().Where(x => theFileName.StartsWith(x.ToLowerInvariant())).Count() > 0
|| theFileName.StartsWith(SiteData.CurrentSite.BlogFolderPath.ToLowerInvariant())) {
return false;
}
using (ContentPageHelper pageHelper = new ContentPageHelper()) {
ContentPage fn = pageHelper.FindByFilename(SiteData.CurrentSite.SiteID, theFileName);
ContentPage cp = pageHelper.FindContentByID(SiteData.CurrentSite.SiteID, this.Root_ContentID);
if (cp == null && this.Root_ContentID != Guid.Empty) {
cp = pageHelper.GetVersion(SiteData.CurrentSite.SiteID, this.Root_ContentID);
}
if (fn == null || (fn != null && cp != null && fn.Root_ContentID == cp.Root_ContentID)) {
return true;
}
}
return false;
}