コード例 #1
0
        public async Task <string> LoadPlaylistDataAsync()
        {
            var fileDialog = new CommonOpenFileDialog
            {
                Title = "Select a playlist to load"
            };

            fileDialog.Filters.Add(new CommonFileDialogFilter("M3U Playlist Files", "*.m3u"));

            if (fileDialog.ShowDialog() != CommonFileDialogResult.Ok)
            {
                await Task.Delay(1);

                return(LoadedPlaylistFile);
            }

            TrackList.Clear();

            ViewModelStatus    = "Loading Playlist...";
            LoadedPlaylistFile = "";

            var selectedFile = new FileInfo(fileDialog.FileName);

            var loadedTracks = await PlaylistFileProcessor.LoadPlaylistDataAsync(selectedFile.FullName);

            Environment.CurrentDirectory = selectedFile.DirectoryName;

            foreach (var track in loadedTracks)
            {
                var trackData = await Task.Run(() => MediaFileProcessor.LoadTrackMetadata(track));

                if (trackData != null)
                {
                    TrackList.Add(trackData);
                }
            }

            ViewModelStatus = await Task.Run(() => GetPlaylistSummary());

            //LoadedPlaylistFile = selectedFile.FullName;

            return(selectedFile.FullName);
        }
コード例 #2
0
        public async Task <object> UploadProfile(
            [Required] IFormFile file,
            [FromServices] HashFileProvider fileProvider,
            [FromServices] AppDbContext context,
            [FromServices] MediaFileProcessor processor)
        {
            if (!processor.TryProcessImage(file.OpenReadStream(), out var jpg,
                                           maxsize: 200 * 1024))
            {
                return(StatusCode(400));
            }
            var user = await userManager.GetUserAsync(User);

            var hash = await fileProvider.SaveFileAsync(jpg);

            if (user.ProfileFileHash != null)
            {
                fileProvider.DeleteFile(user.ProfileFileHash);
            }
            user.ProfileFileHash = hash;
            await context.SaveChangesAsync();

            return(Ok());
        }