Exemple #1
0
        private string GetDownloadPathname(string rootFolder, IPodcastInfo podcastInfo, IPodcastFeedItem podcastFeedItem)
        {
            var proposedFilename = podcastFeedItem.FileName;

            switch (podcastInfo.Feed.NamingStyle.Value)
            {
            case PodcastEpisodeNamingStyle.UrlFileNameAndPublishDateTime:
                proposedFilename = string.Format(CultureInfo.InvariantCulture, "{0}_{1}",
                                                 podcastFeedItem.Published.ToString("yyyy_MM_dd_HHmm", CultureInfo.InvariantCulture),
                                                 proposedFilename);
                break;

            case PodcastEpisodeNamingStyle.UrlFileNameFeedTitleAndPublishDateTime:
                proposedFilename = string.Format(CultureInfo.InvariantCulture, "{0}_{1}_{2}",
                                                 podcastFeedItem.Published.ToString("yyyy_MM_dd_HHmm", CultureInfo.InvariantCulture),
                                                 podcastInfo.Folder,
                                                 proposedFilename);
                break;

            case PodcastEpisodeNamingStyle.UrlFileNameFeedTitleAndPublishDateTimeInfolder:
                proposedFilename = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}_{3}_{4}",
                                                 podcastFeedItem.Published.ToString("yyyy_MM", CultureInfo.InvariantCulture),
                                                 _pathUtilities.GetPathSeparator(),
                                                 podcastFeedItem.Published.ToString("yyyy_MM_dd_HHmm", CultureInfo.InvariantCulture),
                                                 podcastInfo.Folder,
                                                 proposedFilename);
                break;

            case PodcastEpisodeNamingStyle.EpisodeTitle:
                proposedFilename = podcastFeedItem.TitleAsFileName;
                break;

            case PodcastEpisodeNamingStyle.EpisodeTitleAndPublishDateTime:
                proposedFilename = string.Format(CultureInfo.InvariantCulture, "{0}_{1}",
                                                 podcastFeedItem.Published.ToString("yyyy_MM_dd_HHmm", CultureInfo.InvariantCulture),
                                                 podcastFeedItem.TitleAsFileName);
                break;

            case PodcastEpisodeNamingStyle.UrlFileName:
                break;

            default:
                throw new EnumOutOfRangeException("NamingStyle");
            }

            return(Path.Combine(Path.Combine(rootFolder, podcastInfo.Folder), proposedFilename));
        }