예제 #1
0
        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);
                }
        }
예제 #2
0
 public AddMediaCommand(MediaCreationRequest mediaContent)
 {
     MediaContent = mediaContent ?? throw new ArgumentNullException(nameof(mediaContent));
 }
예제 #3
0
 public async Task <ActionResult <MediaContent> > AddMedia([FromBody] MediaCreationRequest mediaContent)
 {
     return(Ok(await _mediaLibraryService.AddMedia(mediaContent)));
 }
예제 #4
0
 public async Task <MediaContent> AddMedia(MediaCreationRequest mediaContent)
 {
     return(await _mediator.Send(new AddMediaCommand(mediaContent)));
 }