public IActionResult Create(MusicCreateViewModel model)
        {
            if (!TryValidateModel(model))
            {
                return(View(model));
            }
            var   currentUserId = this._signInManager.UserManager.GetUserId(HttpContext.User);
            Music newMusic      = new Music()
            {
                Titel       = model.Titel,
                ZangersName = model.ZangersName,
                Lied        = model.Lied,
                MediaUser   = _currentMediaUser,
                MediaUserId = currentUserId
            };

            _mediaService.InsertMedia(newMusic);
            _mediaService.SaveChanges();

            Music muzFrmDb = _mediaService.GetAllMedia().OfType <Music>().FirstOrDefault(x => x.Id == newMusic.Id);

            if (model.Photo != null)
            {
                using var memoryStream = new MemoryStream();
                model.Photo.CopyTo(memoryStream);
                muzFrmDb.Photo = memoryStream.ToArray();
            }

            _mediaService.SaveChanges();

            return(RedirectToAction("Details", new { muzFrmDb.Id }));
        }
Пример #2
0
        public async Task <IActionResult> Create(MusicCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                Music toBeAddedMusic = new Music
                {
                    Artist      = model.Artist,
                    ReleaseDate = model.ReleaseDate,
                    Genre       = model.Genre,
                    Title       = model.Title,
                    Url         = model.Url
                };

                var user = await _userManager.GetUserAsync(HttpContext.User);

                _mediaDbContext.MusicList.Add(toBeAddedMusic);
                await _mediaDbContext.SaveChangesAsync();

                UserMusic newConnection = new UserMusic
                {
                    User    = user,
                    UserId  = user.Id,
                    Music   = toBeAddedMusic,
                    MusicId = toBeAddedMusic.Id
                };
                _mediaDbContext.UserMusicList.Add(newConnection);
                await _mediaDbContext.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Пример #3
0
        public async Task <IActionResult> Create(MusicCreateViewModel createModel)
        {
            List <string> songsFromDb = await _mediaWebDbContext.Songs.Select(s => s.Title).ToListAsync();

            List <string> artistFromDb = await _mediaWebDbContext.Artists.Select(a => a.Name).ToListAsync();

            //check for duplicates
            if (songsFromDb.Contains(StringEdits.FirstLettterToUpper(createModel.Title)))
            {
                return(RedirectToAction("Index"));
            }

            Song newSong = new Song()
            {
                Title       = StringEdits.FirstLettterToUpper(createModel.Title),
                ReleaseDate = createModel.ReleaseDate,
                SongFile    = UploadUtility.UploadFile(createModel.Song, "songs", _hostingEnvironment)
            };

            //add artists to song
            var songArtists = new List <SongArtist>();

            //create only if new artists
            if (createModel.createdArtists != null)
            {
                var createdArtists      = StringEdits.FirstLettterToUpper(createModel.createdArtists);
                var createdArtistsArray = createdArtists.Split(", ");

                var newArtists    = new List <Artist>();
                var artistsFromDb = await _mediaWebDbContext.Artists.ToListAsync();

                foreach (var createdArtist in createdArtistsArray)
                {
                    if (!artistsFromDb.Select(g => g.Name).Contains(createdArtist))
                    {
                        newArtists.Add(new Artist()
                        {
                            Name = createdArtist
                        });
                    }
                    else
                    {
                        songArtists.Add(new SongArtist()
                        {
                            Artist = artistsFromDb.Find(g => g.Name == createdArtist)
                        });
                    }
                }

                foreach (var newArtist in newArtists)
                {
                    songArtists.Add(new SongArtist()
                    {
                        ArtistId = newArtist.Id, Artist = newArtist
                    });
                }
            }

            newSong.SongArtists = songArtists;

            _mediaWebDbContext.Update(newSong);
            await _mediaWebDbContext.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public IActionResult Create()
        {
            MusicCreateViewModel Muz = new MusicCreateViewModel();

            return(View(Muz));
        }
Пример #5
0
        public IActionResult Create()
        {
            MusicCreateViewModel model = new MusicCreateViewModel();

            return(View(model));
        }