public async Task ManageFolders() { using (var server = CreateServer()) using (var client = server.CreateClient()) { var folders = await client.GetJsonAsync <List <MediaFolder> >($"{MediaLibraryApi}/GetRootFolders"); foreach (var folder in folders) { await client.PostJsonAsync($"{MediaLibraryApi}/DeleteFolder?folderId={folder.Id}"); } Thread.Sleep(1000); folders = await client.GetJsonAsync <List <MediaFolder> >($"{MediaLibraryApi}/GetRootFolders"); Assert.Empty(folders); var rootFolderName = Guid.NewGuid().ToString(); var rootFolder = await client.PostJsonAsync <MediaFolder>($"{MediaLibraryApi}/CreateRootFolder?folderName={rootFolderName}"); var rootFolders = await client.GetJsonAsync <List <MediaFolder> >($"{MediaLibraryApi}/GetRootFolders"); Assert.Contains(rootFolders, x => x.Id == rootFolder.Id); var childFolderName = Guid.NewGuid().ToString(); var childFolder = await client.PostJsonAsync <MediaFolder>($"{MediaLibraryApi}/CreateFolder?folderName={childFolderName}&parentFolderId={rootFolder.Id}"); var childrenFolders = await client.GetJsonAsync <List <MediaFolder> >($"{MediaLibraryApi}/GetChildrenFolders?folderId={rootFolder.Id}"); Assert.Contains(childrenFolders, x => x.Id == childFolder.Id); var fileName = "alaska.jpg"; var mediaCreationRequest = new MediaCreationRequest { Name = fileName, ContentType = "image/jpeg", FolderId = childFolder.Id, MediaContent = Convert.ToBase64String(File.ReadAllBytes($"TestContents\\{fileName}")), }; var uploadedContent = await client.PostJsonAsync <MediaContent>($"{MediaLibraryApi}/AddMedia", mediaCreationRequest); Assert.Equal(fileName, uploadedContent.Name); Assert.False(string.IsNullOrEmpty(uploadedContent.ThumbnailUrl)); var folderContents = await client.GetJsonAsync <List <MediaContent> >($"{MediaLibraryApi}/GetFolderContents?folderId={childFolder.Id}"); Assert.Single(folderContents); Assert.Equal(fileName, folderContents.First().Name); Assert.Equal(uploadedContent.Id, folderContents.First().Id); Assert.Equal(uploadedContent.Url, folderContents.First().Url); Assert.Equal(uploadedContent.ThumbnailUrl, folderContents.First().ThumbnailUrl); await client.PostJsonAsync($"{MediaLibraryApi}/DeleteMedia?mediaId={uploadedContent.Id}"); folderContents = await client.GetJsonAsync <List <MediaContent> >($"{MediaLibraryApi}/GetFolderContents?folderId={childFolder.Id}"); Assert.Empty(folderContents); await client.PostJsonAsync($"{MediaLibraryApi}/DeleteFolder?folderId={rootFolder.Id}"); rootFolders = await client.GetJsonAsync <List <MediaFolder> >($"{MediaLibraryApi}/GetRootFolders"); Assert.Empty(rootFolders); } }
public AddMediaCommand(MediaCreationRequest mediaContent) { MediaContent = mediaContent ?? throw new ArgumentNullException(nameof(mediaContent)); }
public async Task <ActionResult <MediaContent> > AddMedia([FromBody] MediaCreationRequest mediaContent) { return(Ok(await _mediaLibraryService.AddMedia(mediaContent))); }
public async Task <MediaContent> AddMedia(MediaCreationRequest mediaContent) { return(await _mediator.Send(new AddMediaCommand(mediaContent))); }