public async Task <IActionResult> CreatePlaylist(CreatePlaylistViewModel viewModel) { if (!ModelState.IsValid) { var createPlaylist = _mapper.Map <CreatePlaylistViewModel>(CronosState); return(View(createPlaylist)); } if (CronosState?.AlbumResults == null) { return(RedirectToAction("SelectArtist")); } try { var playlist = new Playlist(); foreach (var album in CronosState.AlbumResults.Where(a => a.Checked)) { foreach (var t in album.Tracks) { playlist.Tracks.Add(t); } } playlist.Name = viewModel.PlaylistTitle; playlist.Description = $"Playlist created by cronos.frenetik.io on {DateTime.Now:D} by none other than {User.Identity.Name}"; playlist.Public = viewModel.Public; var returnPlaylist = await _spotifyService.CreatePlaylistAsync(playlist); var created = _mapper.Map <CompletedPlaylistViewModel>(returnPlaylist); CronosState.Reset(); return(View("CompletedPlaylist", created)); } catch (Exception e) { Console.WriteLine(e); return(View("Error", new ErrorViewModel() { RequestId = HttpContext.TraceIdentifier })); } }