Exemplo n.º 1
0
        public ActionResult AddMediaPath(
            [FromBody, Required] MediaPathDto mediaPathDto,
            [FromQuery] bool refreshLibrary = false)
        {
            _libraryMonitor.Stop();

            try
            {
                var mediaPath = mediaPathDto.PathInfo ?? new MediaPathInfo {
                    Path = mediaPathDto.Path
                };

                _libraryManager.AddMediaPath(mediaPathDto.Name, mediaPath);
            }
            finally
            {
                Task.Run(async() =>
                {
                    // No need to start if scanning the library because it will handle it
                    if (refreshLibrary)
                    {
                        await _libraryManager.ValidateMediaLibrary(new SimpleProgress <double>(), CancellationToken.None).ConfigureAwait(false);
                    }
                    else
                    {
                        // Need to add a delay here or directory watchers may still pick up the changes
                        // Have to block here to allow exceptions to bubble
                        await Task.Delay(1000).ConfigureAwait(false);
                        _libraryMonitor.Start();
                    }
                });
            }

            return(NoContent());
        }
        public async Task AddMediaPath_PathDoesntExist_ReturnsNotFound()
        {
            var client = _factory.CreateClient();

            client.DefaultRequestHeaders.AddAuthHeader(_accessToken ??= await AuthHelper.CompleteStartupAsync(client).ConfigureAwait(false));

            var data = new MediaPathDto()
            {
                Name = "Test",
                Path = "/this/path/doesnt/exist"
            };

            var response = await client.PostAsJsonAsync("Library/VirtualFolders/Paths", data, _jsonOptions).ConfigureAwait(false);

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
Exemplo n.º 3
0
        public async Task AddMediaPath_PathDoesntExist_ReturnsNotFound()
        {
            var client = _factory.CreateClient();

            client.DefaultRequestHeaders.AddAuthHeader(_accessToken ??= await AuthHelper.CompleteStartupAsync(client).ConfigureAwait(false));

            var data = new MediaPathDto()
            {
                Name = "Test",
                Path = "/this/path/doesnt/exist"
            };

            using var postContent           = new ByteArrayContent(JsonSerializer.SerializeToUtf8Bytes(data, _jsonOptions));
            postContent.Headers.ContentType = MediaTypeHeaderValue.Parse(MediaTypeNames.Application.Json);
            var response = await client.PostAsync("Library/VirtualFolders/Paths", postContent).ConfigureAwait(false);

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }