Esempio n. 1
0
        public async Task<object> Post(CreateCollection request)
        {
            var userId = _authContext.GetAuthorizationInfo(Request).UserId;

            var parentId = string.IsNullOrWhiteSpace(request.ParentId) ? (Guid?)null : new Guid(request.ParentId);

            var item = await _collectionManager.CreateCollection(new CollectionCreationOptions
            {
                IsLocked = request.IsLocked,
                Name = request.Name,
                ParentId = parentId,
                ItemIdList = SplitValue(request.Ids, ','),
                UserIds = new string[] { userId }

            }).ConfigureAwait(false);

            var dtoOptions = GetDtoOptions(_authContext, request);

            var dto = _dtoService.GetBaseItemDto(item, dtoOptions);

            return ToOptimizedResult(new CollectionCreationResult
            {
                Id = dto.Id
            });
        }
        public async Task <object> Post(CreateCollection request)
        {
            var userId = AuthorizationContext.GetAuthorizationInfo(Request).UserId;

            var parentId = string.IsNullOrWhiteSpace(request.ParentId) ? (Guid?)null : new Guid(request.ParentId);

            var item = await _collectionManager.CreateCollection(new CollectionCreationOptions
            {
                IsLocked   = request.IsLocked,
                Name       = request.Name,
                ParentId   = parentId,
                ItemIdList = (request.Ids ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => new Guid(i)).ToList(),
                UserIds    = new List <Guid> {
                    new Guid(userId)
                }
            }).ConfigureAwait(false);

            var dtoOptions = GetDtoOptions(request);

            var dto = _dtoService.GetBaseItemDto(item, dtoOptions);

            return(ToOptimizedResult(new CollectionCreationResult
            {
                Id = dto.Id
            }));
        }
Esempio n. 3
0
        public ActionResult <CollectionCreationResult> CreateCollection(
            [FromQuery] string?name,
            [FromQuery] string?ids,
            [FromQuery] Guid?parentId,
            [FromQuery] bool isLocked = false)
        {
            var userId = _authContext.GetAuthorizationInfo(Request).UserId;

            var item = _collectionManager.CreateCollection(new CollectionCreationOptions
            {
                IsLocked   = isLocked,
                Name       = name,
                ParentId   = parentId,
                ItemIdList = RequestHelpers.Split(ids, ',', true),
                UserIds    = new[] { userId }
            });

            var dtoOptions = new DtoOptions().AddClientFields(Request);

            var dto = _dtoService.GetBaseItemDto(item, dtoOptions);

            return(new CollectionCreationResult
            {
                Id = dto.Id
            });
        }
Esempio n. 4
0
        public void Post(CreateCollection request)
        {
            var task = _collectionManager.CreateCollection(new CollectionCreationOptions
            {
                IsLocked = request.IsLocked,
                Name     = request.Name,
                ParentId = request.ParentId
            });

            Task.WaitAll(task);
        }
Esempio n. 5
0
        public async Task <object> Post(CreateCollection request)
        {
            var item = await _collectionManager.CreateCollection(new CollectionCreationOptions
            {
                IsLocked   = request.IsLocked,
                Name       = request.Name,
                ParentId   = request.ParentId,
                ItemIdList = (request.Ids ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => new Guid(i)).ToList()
            }).ConfigureAwait(false);

            var dto = _dtoService.GetBaseItemDto(item, new List <ItemFields>());

            return(ToOptimizedResult(new CollectionCreationResult
            {
                Id = dto.Id
            }));
        }
        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);
        }