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 })); }
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 }); }
public void Post(CreateCollection request) { var task = _collectionManager.CreateCollection(new CollectionCreationOptions { IsLocked = request.IsLocked, Name = request.Name, ParentId = request.ParentId }); Task.WaitAll(task); }
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); }