/// <summary> /// Initialize a new <see cref="S3ListItem" /> /// </summary> /// <param name="provider">Associated <see cref="S3Provider"/></param> /// <param name="session">Current <see cref="T:Tridion.ExternalContentLibrary.V2.IEclSession"/></param> /// <param name="parentUri"><see cref="Tridion.ExternalContentLibrary.V2.IEclUri" /></param> /// <param name="eclObject"><see cref="Amazon.S3.Model.S3Object"/></param> /// <remarks>Creating a <see cref="S3ListItem" /> directly from an <see cref="T:S3ECLProvider.API.S3ItemData"/></remarks> public S3ListItem(S3Provider provider, IEclSession session, IEclUri parentUri, S3ItemData eclObject) { Provider = provider; Session = session; ParentId = parentUri; _itemData = eclObject; Id = provider.GetUri(_itemData, parentUri); }
/// <summary> /// Initialize a new <see cref="S3ListItem" /> in a given context /// </summary> /// <param name="item"><see cref="S3ListItem"/> to create a shallow clone from</param> public S3ListItem(S3ListItem item, IEclUri contextUri) { Provider = item.Provider; Session = item.Session; ParentId = item.ParentId; _itemData = item._itemData; Id = item.Id.GetInPublication(contextUri.PublicationId); }
/// <summary> /// Gets the <see cref="T:Tridion.ExternalContentLibrary.V2.IEclUri" /> for an <paramref name="item"/> /// </summary> /// <param name="item"><see cref="T:S3ECLProvider.API.S3ItemData"/>.</param> /// <param name="contextUri"><see cref="T:Tridion.ExternalContentLibrary.V2.IEclUri" /></param> /// <returns><see cref="T:Tridion.ExternalContentLibrary.V2.IEclUri" />s</returns> public IEclUri GetUri(S3ItemData item, IEclUri contextUri) { if (item == null) { throw new ArgumentNullException("item"); } return(_hostServices.CreateEclUri( contextUri.PublicationId, contextUri.MountPointId, item.EclKey, item.ItemType == S3ItemType.Folder ? Constants.S3_FOLDER_ID : Constants.S3_FILE_ID, item.ItemType == S3ItemType.Folder ? EclItemTypes.Folder : EclItemTypes.File)); }
/// <summary> /// Initialize a new <see cref="S3ListItem" /> /// </summary> /// <param name="provider">Associated <see cref="S3Provider"/></param> /// <param name="session">Current <see cref="T:Tridion.ExternalContentLibrary.V2.IEclSession"/></param> /// <param name="uri"><see cref="Tridion.ExternalContentLibrary.V2.IEclUri" /></param> public S3ListItem(S3Provider provider, IEclSession session, IEclUri uri) { Provider = provider; Session = session; ParentId = provider.GetParentUri(uri); if (uri.ItemType == EclItemTypes.Folder) { _itemData = provider.S3.GetFolder(uri.ItemId); } else { _itemData = provider.S3.GetObject(uri.ItemId); } Id = provider.GetUri(_itemData, uri); }
/// <summary> /// Initialize a new <see cref="S3Folder" /> /// </summary> /// <param name="provider">Associated <see cref="S3Provider"/></param> /// <param name="session">Current <see cref="T:Tridion.ExternalContentLibrary.V2.IEclSession"/></param> /// <param name="parentUri">Parent <see cref="T:Tridion.ExternalContentLibrary.V2.IEclUri" /></param> /// <param name="eclObject"><see cref="T:S3ECLProvider.API.S3ItemData"/></param> /// <remarks>Creating a <see cref="S3Folder" /> directly from an <see cref="Amazon.S3.Model.S3Object"/></remarks> public S3Folder(S3Provider provider, IEclSession session, IEclUri parentUri, S3ItemData eclObject) : base(provider, session, parentUri, eclObject) { }