protected void OnItemSaved(object sender, System.EventArgs args) { if ((args != null)) { Item item = Event.ExtractParameter(args, 0) as Item; Assert.IsNotNull(item, "No item in parameters"); ID parentID = item.ParentID; if (BucketManager.IsItemContainedWithinBucket(item)) { parentID = item.GetParentBucketItemOrParent().ParentID; } IHasExternalId i = item.GlassCast <IHasExternalId>(); if (i != null && !string.IsNullOrEmpty(i.ExternalId)) { string prefix = i.TemplateId.GetMatchingPrefix(); if (IDTable.GetID(prefix, i.ExternalId) == null) { IDTable.Add(prefix, i.ExternalId, item.ID, parentID); } } else if (parentID.Equals(RebootConstants.ImageRootID)) { string prefix = RebootConstants.ImageItemPrefix; if (IDTable.GetID(prefix, item.Name) == null) { IDTable.Add(prefix, item.Name, item.ID, parentID); } } } }
public IEnumerable <Guid> GetGenreIDs(IEnumerable <int> ids) { List <Guid> genreIDs = (ids.Select(id => IDTable.GetID(typeof(GenreModel).ToString(), id.ToString())) .Where(idTableEntry => idTableEntry != null) .Select(idTableEntry => idTableEntry.ID.Guid)).ToList(); return(genreIDs); }
internal static ID GetItemIdFromIDTableEntry(string prefix, string key) { IDTableEntry idTableEntry = IDTable.GetID(prefix, key); if (idTableEntry == null) { return(ID.Null); } return(idTableEntry.ID); }
private static string GetEncryptionKey([NotNull] Item targetIntegrationItem) { Assert.ArgumentNotNull(targetIntegrationItem, "targetIntegrationItem"); IDTableEntry encryptionKeyEntry = IDTable.GetID(EncryptionKeyIDTableEntryPrefix, targetIntegrationItem.ID.ToShortID().ToString()); if (encryptionKeyEntry == null) { return(null); } return(encryptionKeyEntry.CustomData); }
public IDTableEntry GetID(string prefix, string key) { var idTableStringKey = new IdTableStringKey(prefix, key); //if (_idByKey.ContainsKey(idTableStringKey)) //{ // return _idByKey[idTableStringKey]; //} _idByKey[idTableStringKey] = IDTable.GetID(prefix, key); return(_idByKey[idTableStringKey]); }
public override void Execute(CommandContext context) { IEnumerable <Type> allGlassBasedModels = null; allGlassBasedModels = ReflectionHelper.GetAllTypesThatImplement <GlassBase>( new List <string> { "Projects.Common.Models", "Projects.Reboot.Models" } ); Database database = Factory.GetDatabase("master"); Item modelFolder = database.GetItem(RebootConstants.ModelRootId); foreach (var glassModel in allGlassBasedModels.Where(t => !t.IsAbstract)) { Log.Info(string.Format("Adding model {0} to Sitecore", glassModel.FullName), context); string displayName = glassModel.Name; string name = ItemUtil.ProposeValidItemName(glassModel.FullName.Replace(".", "_")); string prefix = RebootConstants.ModelTemplateId.ToString(); string key = name; IDTableEntry idTableEntry = IDTable.GetID(prefix, key); if (idTableEntry != null) { continue; } Item model = modelFolder.Add(name, new TemplateID(RebootConstants.ModelTemplateId)); if (model == null) { continue; } using (new SecurityDisabler()) { model.Editing.BeginEdit(); try { model.Appearance.DisplayName = displayName; model["Model Type"] = glassModel.AssemblyQualifiedName; } catch (Exception ex) { Log.Error("An error occured while editing Model " + displayName, context); model.Editing.CancelEdit(); } finally { model.Editing.EndEdit(); } } } }
internal static ID GetItemIdFromIDTableEntry <T>(this T obj, string key) where T : class, IHasExternalId { if (obj == null) { return(ID.Null); } string prefix = obj.GetType().ToString(); IDTableEntry idTableEntry = IDTable.GetID(prefix, key); if (idTableEntry == null) { return(ID.Null); } return(idTableEntry.ID); }
// From the entity ID, get the Sitecore ID. // Also can creates the new ID if one does not exist. private ID getSitecoreId(Guid id, ID parentId, Boolean createIfNotExist = true) { var tableEntry = IDTable.GetID(IDTablePrefix, id.ToString()); if (tableEntry == null && createIfNotExist) { tableEntry = IDTable.GetNewID(IDTablePrefix, id.ToString(), parentId); } if (tableEntry != null) { Trace.WriteLine(String.Format("{0} (repository) is {1} (sitecore)", id, tableEntry.ID), "ProductDataProvider"); return(tableEntry.ID); } Trace.WriteLine(String.Format("{0} doesn't have a Sitecore id", id), "ProductDataProvider"); return(null); }
public void ShouldSwitchIdTableProvider() { // arrange var switchedProvider = Substitute.For <IDTableProvider>(); var fixture = new Fixture(); var entry = fixture.Create <IDTableEntry>(); switchedProvider.GetID("prefix", "key").Returns(entry); // act using (new IDTableProviderSwitcher(switchedProvider)) { // assert IDTable.GetID("prefix", "key").Should().BeSameAs(entry); } }
public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { if (itemDefinition.ID == ID.Parse(_parentItem)) { context.Abort(); XmlNodeList videos = VideoData.SelectNodes("/response/videos/video"); IDList videoIDs = new IDList(); foreach (XmlNode video in videos) { string videoKey = video.Attributes["key"].Value; IDTableEntry mappedID = IDTable.GetID(ID_TABLE_PREFIX, videoKey); if (mappedID == null) { mappedID = IDTable.GetNewID(ID_TABLE_PREFIX, videoKey, ID.Parse(_parentItem)); } videoIDs.Add(mappedID.ID); } return(videoIDs); } return(base.GetChildIDs(itemDefinition, context)); }
protected void OnItemSaved(object sender, System.EventArgs args) { if ((args != null)) { Item item = Event.ExtractParameter(args, 0) as Item; Assert.IsNotNull(item, "No item in parameters"); if (!item.TemplateID.Equals(RebootConstants.ModelTemplateId)) { return; } ID parentID = item.ParentID; if (BucketManager.IsItemContainedWithinBucket(item)) { parentID = item.GetParentBucketItemOrParent().ParentID; } string prefix = item.TemplateID.ToString(); string key = item.Name; IDTableEntry idTableEntry = IDTable.GetID(prefix, key); if (idTableEntry == null) { IDTable.Add(prefix, key, item.ID, parentID); } } }
public override IDList GetChildIDs(ItemDefinition itemDefinition, CallContext context) { if (this.CanProcessParent(itemDefinition.ID, context)) { context.Abort(); var idList = new IDList(); ID parentId = itemDefinition.ID; var database = context.DataManager.Database; var actualItem = database.GetItem(parentId); var values = this.DataProviderDamHelper.ProcessingParentFieldNames.ToDictionary(fieldName => fieldName, fieldName => actualItem[fieldName]); var keyList = this.DataProviderDamHelper.GetChildKeys(values); var keys = keyList as string[] ?? keyList.ToArray(); if (!keys.Any()) { return(new IDList()); } foreach (var key in keys) { if (string.IsNullOrEmpty(key)) { continue; } var keyString = key + "|" + parentId.ToShortID(); IDTableEntry idEntry = IDTable.GetID(this.IdTablePrefix, keyString); ID newID; if (idEntry == null) { var itemName = this.DataProviderDamHelper.GetItemName(key); if (itemName == "Undefined") { continue; } newID = ID.NewID; IDTable.Add(this.IdTablePrefix, keyString, newID, parentId, ItemUtil.ProposeValidItemName(Path.GetFileNameWithoutExtension(itemName))); } else { newID = idEntry.ID; } idList.Add(newID); } context.DataManager.Database.Caches.DataCache.Clear(); return(idList); } return(base.GetChildIDs(itemDefinition, context)); }
internal static bool HasIDTableEntry(string prefix, string key) { IDTableEntry idTableEntry = IDTable.GetID(prefix, key); return(idTableEntry != null); }
public IDTableEntry GetID(string prefix, string key) { return(IDTable.GetID(prefix, key)); }