Exemple #1
0
        public AddSongBindingModel GetAllArtistsAndSongGenres()
        {
            var artists = this.DbContext
                          .Artists
                          .Select(this.Mapper.Map <ArtistConciseViewModel>)
                          .ToList();

            var songGenres = this.DbContext
                             .SongGenres
                             .Select(this.Mapper.Map <SongGenreViewModel>)
                             .ToList();

            var artistsQuery = artists.Select(b => new SelectListItem()
            {
                Text = b.FullName, Value = b.Id.ToString()
            });

            var songGenresQuery = songGenres.Select(b => new SelectListItem()
            {
                Text = b.GenreName, Value = b.Id.ToString()
            });

            var model = new AddSongBindingModel()
            {
                AllArtists    = artistsQuery.ToList(),
                AllSongGenres = songGenresQuery
            };

            return(model);
        }
        public IActionResult Create(AddSongBindingModel bindingModel, int id)
        {
            var songToCreate = new Song
            {
                Name        = bindingModel.Name,
                Thumbnail   = bindingModel.Thumbnail,
                Artist      = bindingModel.Artist,
                Album       = bindingModel.Album,
                CreatedAt   = DateTime.Now,
                PlaylistsID = id
            };

            dbContext.Songs.Add(songToCreate);
            dbContext.SaveChanges();
            return(RedirectToAction("Index", new { id = id })); // takes an id apart of the route
        }
        public IActionResult AddSong(AddSongBindingModel bindingModel, int playlistId)  //method definition

        {
            var song = new Song
            {
                Name      = bindingModel.Name,
                Artist    = bindingModel.Artist,
                Album     = bindingModel.Album,
                Thumbnail = "https://i.redd.it/qbb3wd0wpdd21.jpg",
                CreatedAt = DateTime.Now
            };

            var playlistbyId = dbContext.Playlists.FirstOrDefault(c => c.ID == playlistId);

            playlistbyId.Songs.Add(song);

            dbContext.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> AddSong(AddSongBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                SetErrorMessage(CommonConstants.DangerMessage);

                return(this.AddSong());
            }

            int generatedId = await this.songService.AddSongAsync(model);

            if (generatedId < 1)
            {
                SetErrorMessage(CommonConstants.DuplicateMessage);

                return(this.AddSong());
            }

            SetSuccessMessage(string.Format(CommonConstants.SuccessMessage, CommonConstants.SongSuffix));

            return(Redirect(string.Format(RedirectConstants.AdministratorAreaSongDetailsPage, generatedId)));
        }
Exemple #5
0
        public async Task <int> AddSongAsync(AddSongBindingModel model)
        {
            var checkForDuplicate = this.DbContext
                                    .Songs
                                    .FirstOrDefault(x => x.SongName == model.SongName);

            if (checkForDuplicate != null)
            {
                return(ErrorId);
            }

            var song = this.Mapper.Map <Song>(model);

            if (song.HighLightVideoURL.Contains(CommonConstants.OriginalVideoUrlPart))
            {
                song.HighLightVideoURL = ModifyVideoURL_Embeded.ModifyEmbed(song.HighLightVideoURL);
            }

            await this.DbContext.Songs.AddAsync(song);

            await this.DbContext.SaveChangesAsync();

            return(song.Id);
        }