示例#1
0
        /// <summary>
        /// Adds the season.
        /// </summary>
        public async Task <Season> AddSeason(Series series,
                                             int?seasonNumber,
                                             bool isVirtualItem,
                                             CancellationToken cancellationToken)
        {
            var seasonName = seasonNumber == 0 ?
                             _libraryManager.GetLibraryOptions(series).SeasonZeroDisplayName :
                             (seasonNumber.HasValue ? string.Format(_localization.GetLocalizedString("NameSeasonNumber"), seasonNumber.Value.ToString(_usCulture)) : _localization.GetLocalizedString("NameSeasonUnknown"));

            _logger.Info("Creating Season {0} entry for {1}", seasonName, series.Name);

            var season = new Season
            {
                Name          = seasonName,
                IndexNumber   = seasonNumber,
                Id            = _libraryManager.GetNewItemId((series.Id + (seasonNumber ?? -1).ToString(_usCulture) + seasonName), typeof(Season)),
                IsVirtualItem = isVirtualItem,
                SeriesId      = series.Id,
                SeriesName    = series.Name
            };

            season.SetParent(series);

            series.AddChild(season, cancellationToken);

            await season.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false);

            return(season);
        }
        /// <summary>
        /// Adds the season.
        /// </summary>
        /// <param name="series">The series.</param>
        /// <param name="seasonNumber">The season number.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Task{Season}.</returns>
        private async Task <Season> AddSeason(Series series,
                                              int?seasonNumber,
                                              CancellationToken cancellationToken)
        {
            var seasonName = seasonNumber == 0 ?
                             _config.Configuration.SeasonZeroDisplayName :
                             (seasonNumber.HasValue ? string.Format(_localization.GetLocalizedString("NameSeasonNumber"), seasonNumber.Value.ToString(UsCulture)) : _localization.GetLocalizedString("NameSeasonUnknown"));

            _logger.Info("Creating Season {0} entry for {1}", seasonName, series.Name);

            var season = new Season
            {
                Name             = seasonName,
                IndexNumber      = seasonNumber,
                Parent           = series,
                DisplayMediaType = typeof(Season).Name,
                Id = (series.Id + (seasonNumber ?? -1).ToString(UsCulture) + seasonName).GetMBId(typeof(Season))
            };

            await series.AddChild(season, cancellationToken).ConfigureAwait(false);

            await season.RefreshMetadata(new MetadataRefreshOptions(), cancellationToken).ConfigureAwait(false);

            return(season);
        }
        /// <summary>
        /// Adds the season.
        /// </summary>
        public async Task <Season> AddSeason(
            Series series,
            int?seasonNumber,
            bool isVirtualItem,
            CancellationToken cancellationToken)
        {
            string seasonName;

            if (seasonNumber == null)
            {
                seasonName = _localization.GetLocalizedString("NameSeasonUnknown");
            }
            else if (seasonNumber == 0)
            {
                seasonName = _libraryManager.GetLibraryOptions(series).SeasonZeroDisplayName;
            }
            else
            {
                seasonName = string.Format(
                    CultureInfo.InvariantCulture,
                    _localization.GetLocalizedString("NameSeasonNumber"),
                    seasonNumber.Value);
            }

            _logger.LogInformation("Creating Season {0} entry for {1}", seasonName, series.Name);

            var season = new Season
            {
                Name        = seasonName,
                IndexNumber = seasonNumber,
                Id          = _libraryManager.GetNewItemId(
                    series.Id + (seasonNumber ?? -1).ToString(CultureInfo.InvariantCulture) + seasonName,
                    typeof(Season)),
                IsVirtualItem = isVirtualItem,
                SeriesId      = series.Id,
                SeriesName    = series.Name
            };

            season.SetParent(series);

            series.AddChild(season, cancellationToken);

            await season.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_fileSystem)), cancellationToken).ConfigureAwait(false);

            return(season);
        }
        /// <summary>
        /// Adds the season.
        /// </summary>
        /// <param name="series">The series.</param>
        /// <param name="seasonNumber">The season number.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Task{Season}.</returns>
        private async Task <Season> AddSeason(Series series, int seasonNumber, CancellationToken cancellationToken)
        {
            _logger.Info("Creating Season {0} entry for {1}", seasonNumber, series.Name);

            var name = seasonNumber == 0 ? _config.Configuration.SeasonZeroDisplayName : string.Format("Season {0}", seasonNumber.ToString(UsCulture));

            var season = new Season
            {
                Name             = name,
                IndexNumber      = seasonNumber,
                Parent           = series,
                DisplayMediaType = typeof(Season).Name,
                Id = (series.Id + seasonNumber.ToString(UsCulture) + name).GetMBId(typeof(Season))
            };

            await series.AddChild(season, cancellationToken).ConfigureAwait(false);

            await season.RefreshMetadata(new MetadataRefreshOptions(), cancellationToken).ConfigureAwait(false);

            return(season);
        }