public SongAlbum Delete(SongAlbum SongAlbum)
        {
            var result = _context.Remove(SongAlbum);

            _context.SaveChanges();
            return(result.Entity);
        }
        public SongAlbum Create(SongAlbum SongAlbum)
        {
            var result = _context.Add <SongAlbum>(SongAlbum);

            _context.SaveChanges();
            return(result.Entity);
        }
示例#3
0
        private void UpdateSongAlbums(string[] selectedAlbums, Song songToUpdate)
        {
            if (selectedAlbums == null)
            {
                songToUpdate.SongAlbums = new List <SongAlbum>();
                return;
            }

            var selectedAlbumsHS = new HashSet <string>(selectedAlbums);
            var songAlbums       = new HashSet <int>
                                       (songToUpdate.SongAlbums.Select(c => c.Album.AlbumID));

            foreach (var album in repository.Albums())
            {
                if (selectedAlbumsHS.Contains(album.AlbumID.ToString()))
                {
                    if (!songAlbums.Contains(album.AlbumID))
                    {
                        songToUpdate.SongAlbums.Add(new SongAlbum {
                            SongID = songToUpdate.SongID, AlbumID = album.AlbumID
                        });
                    }
                }
                else
                {
                    if (songAlbums.Contains(album.AlbumID))
                    {
                        SongAlbum SongAlbumToRemove = songToUpdate.SongAlbums.FirstOrDefault(i => i.AlbumID == album.AlbumID);
                        repository.DeleteSongAlbum(SongAlbumToRemove);
                    }
                }
            }
        }
示例#4
0
        public void Post(AlbumDTO value)
        {
            Album model = new Album()
            {
                Name        = value.Name,
                ReleaseYear = value.ReleaseYear,
                StudioId    = value.StudioId
            };

            IAlbumRepository.Create(model);
            for (int i = 0; i < value.ArtistId.Count; i++)
            {
                ArtistAlbum ArtistAlbum = new ArtistAlbum()
                {
                    AlbumId  = model.Id,
                    ArtistId = value.ArtistId[i]
                };
                IArtistAlbumRepository.Create(ArtistAlbum);
            }
            for (int i = 0; i < value.SongId.Count; i++)
            {
                SongAlbum SongAlbum = new SongAlbum()
                {
                    AlbumId = model.Id,
                    SongId  = value.ArtistId[i]
                };
                ISongAlbumRepository.Create(SongAlbum);
            }
        }
示例#5
0
        public ViewResult RemoveSongAlbum(int?id)
        {
            SongAlbum sa = repository.SongAlbums().Single(a => a.SongAlbumID == id);

            repository.DeleteSongAlbum(sa);
            repository.SaveContext();

            return(View());
        }
示例#6
0
        public SongAlbum Post(SongAlbumDTO value)
        {
            SongAlbum model = new SongAlbum()
            {
                SongId  = value.SongId,
                AlbumId = value.AlbumId
            };

            return(ISongAlbumsRepository.Create(model));
        }
示例#7
0
        public void Put(int id, AlbumDTO value)
        {
            Album model = IAlbumRepository.Get(id);

            if (value.Name != null)
            {
                model.Name = value.Name;
            }
            if (value.ReleaseYear != 0)
            {
                model.ReleaseYear = value.ReleaseYear;
            }
            if (value.StudioId != 0)
            {
                model.StudioId = value.StudioId;
            }
            IAlbumRepository.Update(model);
            if (value.ArtistId != null)
            {
                IEnumerable <ArtistAlbum> MyArtistAlbums = IArtistAlbumRepository.GetAll().Where(x => x.AlbumId == id);
                foreach (ArtistAlbum MyArtistAlbum in MyArtistAlbums)
                {
                    IArtistAlbumRepository.Delete(MyArtistAlbum);
                }
                for (int i = 0; i < value.ArtistId.Count; i++)
                {
                    ArtistAlbum ArtistAlbum = new ArtistAlbum()
                    {
                        AlbumId  = model.Id,
                        ArtistId = value.ArtistId[i]
                    };
                    IArtistAlbumRepository.Create(ArtistAlbum);
                }
            }
            if (value.SongId != null)
            {
                IEnumerable <SongAlbum> MySongAlbums = ISongAlbumRepository.GetAll().Where(x => x.AlbumId == id);
                foreach (SongAlbum MySongAlbum in MySongAlbums)
                {
                    ISongAlbumRepository.Delete(MySongAlbum);
                }
                for (int i = 0; i < value.SongId.Count; i++)
                {
                    SongAlbum SongAlbum = new SongAlbum()
                    {
                        AlbumId = model.Id,
                        SongId  = value.ArtistId[i]
                    };
                    ISongAlbumRepository.Create(SongAlbum);
                }
            }
        }
示例#8
0
        public SongAlbum Put(int id, SongAlbumDTO value)
        {
            SongAlbum model = ISongAlbumsRepository.Get(id);

            if (value.SongId != 0)
            {
                model.SongId = value.SongId;
            }
            if (value.AlbumId != 0)
            {
                model.AlbumId = value.AlbumId;
            }
            return(ISongAlbumsRepository.Update(model));
        }
示例#9
0
        public SongAlbum Get(int id)
        {
            SongAlbum album = new SongAlbum();
            var       songs = Functions.GetSongs();

            foreach (var item in songs)
            {
                if (item.Id == id)
                {
                    album.Id       = item.Id;
                    album.Album    = item.Album;
                    album.Picture  = item.Picture;
                    album.Artist   = item.Artist;
                    album.Genre    = item.Genre;
                    album.Year     = item.Year;
                    album.Next     = songs.Where(a => a.Album == album.Album).OrderBy(a => a.Track).Where(a => a.Track > item.Track).FirstOrDefault();
                    album.Previous = songs.Where(a => a.Album == album.Album).Where(a => a.Track == (item.Track - 1)).FirstOrDefault();

                    break;
                }
            }

            if (album.Next == null)
            {
                album.Next = songs.Where(a => a.Album == album.Album).OrderBy(a => a.Track).First();
            }

            if (album.Previous == null)
            {
                album.Previous = songs.Where(a => a.Album == album.Album).OrderBy(a => a.Track).Last();
            }

            album.Songs = songs.Where(a => a.Album == album.Album).OrderBy(a => a.Track).ToList();

            return(album);
        }
 public SongAlbum Update(SongAlbum SongAlbum)
 {
     _context.Entry(SongAlbum).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
     _context.SaveChanges();
     return(SongAlbum);
 }
        public override IEnumerable <IResult> SaveChanges()
        {
            if (SongTitle.Trim() == string.Empty)
            {
                MessageBox.Show("Please provide an Song Title.", "Error", MessageBoxButton.OK);
                yield return(null);
            }

            foreach (RawTrack media in MediaList)
            {
                try
                {
                    if (SongTitle.Trim() != "Multiple Titles")
                    {
                        media.TrackTitle = SongTitle.Trim();
                    }

                    if (SongAlbum.Trim() != "Multiple Albums")
                    {
                        media.AlbumTitle = SongAlbum.Trim();
                    }

                    //if (SongComposer.Trim() != "Multiple Composers")
                    //{
                    //    var composers = new List<string>();

                    //    foreach (string composer in SongComposer.Trim().Split(';'))
                    //    {
                    //        if (composer != null)
                    //        {
                    //            if (composer.Trim() != string.Empty)
                    //                composers.Add(composer.Trim());
                    //        }
                    //    }

                    //    media.Composers = composers.ToArray();
                    //}

                    if (SongAlbumArtist.Trim() != "Multiple Artists")
                    {
                        media.ArtistName = SongAlbumArtist.Trim();
                    }

                    if (SongGenre.Trim() != "Multiple Genres")
                    {
                        media.Genre = SongGenre.Trim();
                    }

                    if (SongYear != -1)
                    {
                        media.Year = SongYear;
                    }

                    if (SongId != -1)
                    {
                        media.TrackNumber = SongId;
                    }

                    if (media is Mp3Track)
                    {
                        (media as Mp3Track).WriteTag();
                    }
                }
                catch
                {
                    MessageBox.Show("Could not update " + media, "Error", MessageBoxButton.OK);
                }
            }

            yield return(new CloseResult());
        }
        public override IEnumerable <IResult> SaveChanges()
        {
            if (string.IsNullOrEmpty(SongAlbum))
            {
                MessageBox.Show("Please provide an Album Name.", "Error", MessageBoxButton.OK);
                yield return(null);
            }

            if (string.IsNullOrEmpty(SongAlbumArtist))
            {
                MessageBox.Show("Please provide an Artist Name.", "Error", MessageBoxButton.OK);
                yield return(null);
            }

            foreach (RawTrack media in MediaList)
            {
                try
                {
                    bool hasChanged = false;

                    if (SongAlbum.Trim() != "Multiple Album Titles")
                    {
                        media.AlbumTitle = SongAlbum.Trim();
                        hasChanged       = true;
                    }

                    if (SongAlbumArtist.Trim() != "Multiple Album Artists")
                    {
                        media.ArtistName = SongAlbumArtist.Trim();
                        hasChanged       = true;
                    }

                    if (SongGenre != "Multiple Genres")
                    {
                        if (media.Genre != SongGenre.Trim())
                        {
                            media.Genre = SongGenre.Trim();
                            hasChanged  = true;
                        }
                    }

                    if (SongYear != -1)
                    {
                        if (media.Year != SongYear)
                        {
                            media.Year = SongYear;
                            hasChanged = true;
                        }
                    }

                    //TODO:media factory
                    if (hasChanged)
                    {
                        if (media is Mp3Track)
                        {
                            (media as Mp3Track).WriteTag();
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("Could not update " + media, "Error", MessageBoxButton.OK);
                }
            }
            yield return(new CloseResult());
        }
示例#13
0
        public SongAlbum Delete(int id)
        {
            SongAlbum model = ISongAlbumsRepository.Get(id);

            return(ISongAlbumsRepository.Delete(model));
        }