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; }