private static LibraryFileLink Create(SourceLink sourceLink, Library parentLibrary) { LibraryFileLink link; if (sourceLink is FileLink) link = Create(sourceLink.Path); else link = CreateEntity<LibraryFolderLink>(); link.Name = sourceLink.NameWithoutExtension; link.DataSourceId = sourceLink.RootId; var dataSourcePath = parentLibrary.GetDataSources().Where(ds => ds.DataSourceId == sourceLink.RootId).Select(ds => ds.Path).FirstOrDefault(); if (dataSourcePath != null) { var relativePath = sourceLink.Path.Replace(dataSourcePath, String.Empty); relativePath = relativePath.StartsWith(Path.DirectorySeparatorChar.ToString(CultureInfo.InvariantCulture)) ? relativePath.Substring(1) : relativePath; link.RelativePath = relativePath; } return link; }
public static LibraryFileLink Create(SourceLink sourceLink, LibraryFolder parentFolder) { var link = Create(sourceLink, parentFolder.Page.Library); link.Folder = parentFolder; link.AfterCreate(); return link; }
public static LibraryFileLink Create(SourceLink sourceLink, LibraryFolderLink parentFolderLink) { var link = Create(sourceLink, parentFolderLink.ParentLibrary); link.FolderLink = parentFolderLink; link.AfterCreate(); return link; }
private BaseLibraryLink InsertFileLink(SourceLink sourceLink, int position = -1) { BaseLibraryLink link = null; MainController.Instance.ProcessManager.Run("Adding Link...", cancelationToken => { link = LibraryFileLink.Create(sourceLink, DataSource); if (position >= 0) ((List<BaseLibraryLink>)DataSource.Links).InsertItem(link, position); else DataSource.Links.AddItem(link); }); return link; }