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))); }
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); }