Пример #1
0
        public void Music_Update_InvalidMusicName_ThrowsElementUpdateException()
        {
            MusicRepository repository  = new MusicRepository(_context, _mapper);
            Music           music       = repository.GetAll().First();
            Music           secondMusic = repository.GetAll().Last();

            music.Name   = secondMusic.Name;
            music.Artist = secondMusic.Artist;
            music.Genre  = secondMusic.Genre;

            Assert.Throws <ElementUpdateException <Music> >(() => repository.Update(music));
        }
Пример #2
0
        public void Store(string originalFileName, string guid)
        {
            string mediaServerUrlBase = ConfigurationManager.AppSettings["MediaServerSaveBaseUrl"];
            string fullName           = Path.Combine(mediaServerUrlBase, guid);

            using (SmartPlayerEntities context = new SmartPlayerEntities())
            {
                MusicRepository repo = new MusicRepository(context);

                var allSongs = repo.GetAll()
                               .Select(x => new AnalyzableSong {
                    Id = x.Id, PhysicalFileName = x.Guid
                })
                               .ToList();

                allSongs.ForEach(x => x.PhysicalFileName = Path.Combine(mediaServerUrlBase, x.PhysicalFileName));

                List <double> correlationCoefficients = Analyzer.GetCorreleationCoefficientsFor(fullName, allSongs);

                Song song = new Song()
                {
                    Name = originalFileName,
                    Guid = guid
                };

                for (int i = 0; i < correlationCoefficients.Count; i++)
                {
                    song.CorrelationsAsPrimary.Add(new SongSongCorrelation {
                        SecondarySongId = allSongs[i].Id, CorrelationScore = correlationCoefficients[i]
                    });
                }

                repo.Create(song);
            }
        }
Пример #3
0
        public void Music_Update_WithoutGenre_ThrowsElementUpdateException()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);
            Music           music      = repository.GetAll().First();

            music.Genre = null;

            Assert.Throws <ElementUpdateException <Music> >(() => repository.Update(music));
        }
Пример #4
0
        public void Music_Insert_DuplicateMusic_ThrowsElementInsertException()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);
            Music           baseMusic  = repository.GetAll().First();
            Music           music      = new Music {
                Name = baseMusic.Name, Artist = baseMusic.Artist, Genre = baseMusic.Genre
            };

            Assert.Throws <ElementInsertException <Music> >(() => repository.Insert(music));
        }
Пример #5
0
        public void Music_Insert_WithoutGenre_ThrowsElementInsertException()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);
            Music           baseMusic  = repository.GetAll().First();
            Music           music      = new Music {
                Name = "SomeName", Artist = baseMusic.Artist
            };

            Assert.Throws <ElementInsertException <Music> >(() => repository.Insert(music));
        }
Пример #6
0
        public void Music_Update_InvalidMusicId_ThrowsElementUpdateException()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);
            string          name       = "name";
            Music           baseMusic  = repository.GetAll().First();
            Music           music      = new Music {
                ID = -1, Name = name, Artist = baseMusic.Artist, Genre = baseMusic.Genre
            };

            Assert.Throws <ElementUpdateException <Music> >(() => repository.Update(music));
        }
Пример #7
0
        public void Music_Update_ValidMusic_ValidatesItsUpdate()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);
            string          name       = "newName";
            Music           music      = repository.GetAll().First();

            music.Name = name;

            Assert.DoesNotThrow(() => repository.Update(music));
            Assert.AreEqual(music, repository.GetByName(name));
        }
Пример #8
0
        public void Music_Insert_ValidMusic_ValidatesItsInsertion()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);
            string          name       = "test";
            Music           baseMusic  = repository.GetAll().First();
            Music           music      = new Music {
                Name = name, Artist = baseMusic.Artist, Genre = baseMusic.Genre
            };

            Assert.DoesNotThrow(() => repository.Insert(music));
            Assert.AreEqual(music, repository.GetByName(name));
        }
Пример #9
0
        public List <SongDto> GetAllSongs()
        {
            using (SmartPlayerEntities context = new SmartPlayerEntities())
            {
                MusicRepository repo = new MusicRepository(context);

                var allSongs = repo.GetAll()
                               .Select(x => new SongDto
                {
                    Id       = x.Id,
                    SongName = x.Name
                })
                               .ToList();

                return(allSongs);
            }
        }
Пример #10
0
        public List<SongDto> GetAllSongs()
        {
            using(SmartPlayerEntities context = new SmartPlayerEntities())
            {
                MusicRepository repo = new MusicRepository(context);

                var allSongs = repo.GetAll()
                    .Select(x => new SongDto
                    {
                        Id = x.Id,
                        SongName = x.Name
                    })
                    .ToList();

                return allSongs;
            }
        }
Пример #11
0
        /// <summary>
        /// Removes the Album request.
        /// </summary>
        /// <param name="requestId">The request identifier.</param>
        /// <returns></returns>
        public async Task <RequestEngineResult> RemoveAlbumRequest(int requestId)
        {
            var request = await MusicRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);

            var result = await CheckCanManageRequest(request);

            if (result.IsError)
            {
                return(result);
            }

            await MusicRepository.Delete(request);

            return(new RequestEngineResult
            {
                Result = true,
            });
        }
Пример #12
0
 public async Task <bool> UserHasRequest(string userId)
 {
     return(await MusicRepository.GetAll().AnyAsync(x => x.RequestedUserId == userId));
 }
Пример #13
0
        /// <summary>
        /// Removes the Album request.
        /// </summary>
        /// <param name="requestId">The request identifier.</param>
        /// <returns></returns>
        public async Task RemoveAlbumRequest(int requestId)
        {
            var request = await MusicRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);

            await MusicRepository.Delete(request);
        }
Пример #14
0
        public void Store(string originalFileName, string guid)
        {
            string mediaServerUrlBase = ConfigurationManager.AppSettings["MediaServerSaveBaseUrl"];
            string fullName = Path.Combine(mediaServerUrlBase, guid);
            using(SmartPlayerEntities context = new SmartPlayerEntities())
            {
                MusicRepository repo = new MusicRepository(context);

                var allSongs = repo.GetAll()
                    .Select(x => new AnalyzableSong { Id = x.Id, PhysicalFileName = x.Guid })
                    .ToList();

                allSongs.ForEach(x => x.PhysicalFileName = Path.Combine(mediaServerUrlBase, x.PhysicalFileName));

                List<double> correlationCoefficients = Analyzer.GetCorreleationCoefficientsFor(fullName, allSongs);

                Song song = new Song()
                {
                    Name = originalFileName,
                    Guid = guid
                };

                for(int i = 0; i < correlationCoefficients.Count; i++)
                {
                    song.CorrelationsAsPrimary.Add(new SongSongCorrelation { SecondarySongId = allSongs[i].Id, CorrelationScore = correlationCoefficients[i] });
                }

                repo.Create(song);
            }
        }
 public ActionResult <List <Music> > GetMusic()
 {
     return(_musicRepository.GetAll());
 }
Пример #16
0
        public void Music_GetAll_ReturnsMusicCollection()
        {
            MusicRepository repository = new MusicRepository(_context, _mapper);

            Assert.IsNotEmpty(repository.GetAll());
        }