private void AddMoviesToCollection(IReadOnlyCollection <Movie> movies, string tmdbCollectionId, BoxSet boxSet)
        {
            int minimumNumberOfMovies = Plugin.Instance.PluginConfiguration.MinimumNumberOfMovies;

            if (movies.Count < minimumNumberOfMovies)
            {
                _logger.LogInformation("Minimum number of movies is {Count}, but there is/are only {MovieCount}: {MovieNames}",
                                       minimumNumberOfMovies, movies.Count, string.Join(", ", movies.Select(m => m.Name)));
                return;
            }

            // Create the box set if it doesn't exist, but don't add anything to it on creation
            if (boxSet == null)
            {
                var tmdbCollectionName = movies.First().TmdbCollectionName;
                if (Plugin.Instance.PluginConfiguration.StripCollectionKeywords)
                {
                    tmdbCollectionName = tmdbCollectionName.Replace("Collection", String.Empty).Trim();
                }

                _logger.LogInformation("Box Set for {TmdbCollectionName} ({TmdbCollectionId}) does not exist. Creating it now!", tmdbCollectionName, tmdbCollectionId);
                boxSet = _collectionManager.CreateCollection(new CollectionCreationOptions
                {
                    Name        = tmdbCollectionName,
                    ProviderIds = new Dictionary <string, string> {
                        { MetadataProviders.Tmdb.ToString(), tmdbCollectionId }
                    }
                });
            }

            var itemsToAdd = movies
                             .Where(m => !boxSet.ContainsLinkedChildByItemId(m.Id))
                             .Select(m => m.Id)
                             .ToList();

            if (!itemsToAdd.Any())
            {
                _logger.LogInformation("The movies {MovieNames} is/are already in their proper box set, {BoxSetName}",
                                       string.Join(", ", movies.Select(m => m.Name)), boxSet.Name);
                return;
            }

            _collectionManager.AddToCollection(boxSet.Id, itemsToAdd);
        }
Esempio n. 2
0
        public void Post(AddToCollection request)
        {
            var task = _collectionManager.AddToCollection(request.Id, request.Ids.Split(',').Select(i => new Guid(i)));

            Task.WaitAll(task);
        }
 public void Post(AddToCollection request)
 {
     _collectionManager.AddToCollection(new Guid(request.Id), SplitValue(request.Ids, ','));
 }
Esempio n. 4
0
        public void Post(AddToCollection request)
        {
            var task = _collectionManager.AddToCollection(new Guid(request.Id), SplitValue(request.Ids, ','));

            Task.WaitAll(task);
        }
Esempio n. 5
0
 public ActionResult AddToCollection([FromRoute] Guid collectionId, [FromQuery, Required] string?itemIds)
 {
     _collectionManager.AddToCollection(collectionId, RequestHelpers.Split(itemIds, ',', true));
     return(NoContent());
 }