public async Task <IActionResult> Create(string name, string singer, IFormFile media) { // Checks if parameters are set if (name == null || singer == null || media == null) { return(RedirectToAction(nameof(Index))); } // Checks file extension var extension = Path.GetExtension(media.FileName); string[] validExtensions = new string[] { "mp3", "wav" }; foreach (string validExtension in validExtensions) { if (validExtension.Equals(extension)) { return(RedirectToAction(nameof(Index))); } } // Finally creates the song if there is no error Song newSong = new Song { Name = name, Singer = singer, Media = media.FileName }; if (ModelState.IsValid) { _context.Add(newSong); await _context.SaveChangesAsync(); // Stores the given file using FileStream string audioDirectory = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/audio", media.FileName); using (var mediaStream = new FileStream(audioDirectory, FileMode.Create)) { media.CopyTo(mediaStream); } return(RedirectToAction(nameof(Index))); } return(View()); }
public async Task <IActionResult> Create([Bind("Id,Name")] Playlist playlist) { // Checks unique playlist name var existingPlaylistName = await _context.Playlist.FirstOrDefaultAsync(p => p.Name == playlist.Name); if (existingPlaylistName != null) { return(RedirectToAction(nameof(Index))); } playlist.UserName = User.Identity.Name; if (ModelState.IsValid) { _context.Add(playlist); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(playlist)); }