protected virtual bool TargetExists(ID targetID, string targetPath, Database database) { Assert.ArgumentNotNull(targetID, "targetID"); Assert.ArgumentNotNull(targetPath, "targetPath"); Assert.ArgumentNotNull(database, "database"); if (!targetID.IsNull) { return(database.GetItem(targetID) != null); } return(!string.IsNullOrEmpty(targetPath) && (ItemUtil.GetItemFromPartialPath(targetPath, database) != null)); }
protected virtual bool ItemExists(ID itemId, string itemPath, Language itemLanguage, Sitecore.Data.Version itemVersion, Database database) { Assert.ArgumentNotNull(itemId, "itemId"); Assert.ArgumentNotNull(database, "database"); Assert.ArgumentNotNull(itemLanguage, "itemLanguage"); Assert.ArgumentNotNull(itemVersion, "itemVersion"); Item itemFromPartialPath = null; if (!itemId.IsNull) { itemFromPartialPath = database.GetItem(itemId); if (itemFromPartialPath == null) { return(false); } } else if (!string.IsNullOrEmpty(itemPath)) { itemFromPartialPath = ItemUtil.GetItemFromPartialPath(itemPath, database); } if (itemFromPartialPath != null) { if (itemLanguage == Language.Invariant) { return(true); } itemFromPartialPath = itemFromPartialPath.Database.GetItem(itemFromPartialPath.ID, itemLanguage); if (itemFromPartialPath == null) { return(false); } if (itemVersion == Sitecore.Data.Version.Latest) { return(itemFromPartialPath.Versions.Count > 0); } foreach (Sitecore.Data.Version version in itemFromPartialPath.Versions.GetVersionNumbers()) { if (version.Number == itemVersion.Number) { return(true); } } } return(false); }