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); }
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()); }