Exemple #1
0
        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());
        }
Exemple #2
0
        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));
        }