public SubscriptionItemLink(SubscriptionItem subscriptionItem) { SubscriptionItem = subscriptionItem; }
internal Uri GenerateLocalFileName(SubscriptionItem item, Uri uri) { //TODO: beautify and optimize it var nameTemplate = FileNameFormat.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar); nameTemplate = nameTemplate.Replace("{feedName", "{0"); nameTemplate = nameTemplate.Replace("{timeNow", "{1"); nameTemplate = nameTemplate.Replace("{timePublish", "{2"); nameTemplate = nameTemplate.Replace("{timeSession", "{3"); nameTemplate = nameTemplate.Replace("{fileName", "{4"); nameTemplate = nameTemplate.Replace("{fileExtension", "{5"); nameTemplate = nameTemplate.Replace("{fullFileName", "{6"); nameTemplate = nameTemplate.Replace("{globalFeedNumber", "{7"); nameTemplate = nameTemplate.Replace("{globalEntryNumber", "{8"); nameTemplate = nameTemplate.Replace("{globalFileNumber", "{9"); nameTemplate = nameTemplate.Replace("{feedEntryNumber", "{10"); nameTemplate = nameTemplate.Replace("{feedFileNumber", "{11"); nameTemplate = nameTemplate.Replace("{entryFileNumber", "{12"); nameTemplate = nameTemplate.Replace("{MyDocumentsFolder", "{13"); nameTemplate = nameTemplate.Replace("{MyMusicFolder", "{14"); nameTemplate = nameTemplate.Replace("{ApplicationDataFolder", "{15"); nameTemplate = nameTemplate.Replace("{CommonDocumentsFolder", "{16"); nameTemplate = nameTemplate.Replace("{CommonMusicFolder", "{17"); nameTemplate = nameTemplate.Replace("{CommonVideosFolder", "{18"); nameTemplate = nameTemplate.Replace("{DesktopFolder", "{19"); nameTemplate = nameTemplate.Replace("{MyVideosFolder", "{20"); nameTemplate = nameTemplate.Replace("{PersonalFolder", "{21"); nameTemplate = nameTemplate.Replace("{UserProfileFolder", "{22"); nameTemplate = nameTemplate.Replace("{TempFolder", "{23"); var originalFullFileName = uri.Segments.Last(); var originalFileName = Path.GetFileNameWithoutExtension(originalFullFileName).Replace('/', '_').Replace('\\', '_'); var originalExtension = Path.GetExtension(originalFullFileName).TrimStart('.'); var fileName = string.Format( nameTemplate, Name, //0 feedName DateTime.Now, //1 timeNow item.PublishDate, //2 timePublish sessionTime, //3 timeSession originalFileName, //4 fileName originalExtension, //5 fileExtension originalFullFileName, //6 fullFileName null, //sessionFeedCount, //7 globalFeedNumber null, //sessionEntryCount, //8 globalEntryNumber ++sessionFileCount, //9 globalFileNumber null, //feedEntriesCount, //10 feedEntryNumber null, //feedDownloadsCount, //11 feedFileNumber null, //itemFileNumber, //12 entryFileNumber Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), //13 MyDocumentsFolder Environment.GetFolderPath(Environment.SpecialFolder.MyMusic), //14 MyMusicFolder Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), //15 ApplicationDataFolder Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments), //16 CommonDocumentsFolder Environment.GetFolderPath(Environment.SpecialFolder.CommonMusic), //17 CommonMusicFolder Environment.GetFolderPath(Environment.SpecialFolder.CommonVideos), //18 CommonVideosFolder Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), //19 DesktopFolder Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), //20 MyVideosFolder Environment.GetFolderPath(Environment.SpecialFolder.Personal), //21 PersonalFolder Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), //22 UserProfileFolder Path.GetTempPath() //23 TempFolder ); return new Uri(fileName); }