Ejemplo n.º 1
0
        public void TestAddRemove()
        {
            AlbumPlayedDatabase albumPlayedDatabase = new AlbumPlayedDatabase(_settingsLookup[ConnectionKey]);

            GetTestAlbumPlayed(out var name, out AlbumPlayed albumPlayed);

            // Test User is not there
            Assert.IsNotNull(albumPlayedDatabase.LoadedItems);
            int           numberInitialItems = albumPlayedDatabase.LoadedItems.Count;
            List <string> albumNames         = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList();

            Assert.IsFalse(albumNames.Contains(name));

            // Add new User
            albumPlayedDatabase.AddNewItemToDatabase(albumPlayed);
            albumPlayedDatabase.ConnectToDatabase();
            Assert.AreNotEqual(numberInitialItems, albumPlayedDatabase.LoadedItems.Count);
            Assert.AreEqual(1, albumPlayedDatabase.LoadedItems.Count - numberInitialItems);
            List <string> albumNames2 = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList();

            Assert.IsTrue(albumNames2.Contains(name));

            // Remove the new albumPlayed
            albumPlayedDatabase.RemoveItemFromDatabase(albumPlayed);
            albumPlayedDatabase.ConnectToDatabase();

            Assert.AreEqual(albumPlayedDatabase.LoadedItems.Count, numberInitialItems);
            List <string> albumNames3 = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList();

            Assert.IsFalse(albumNames3.Contains(name));
        }
Ejemplo n.º 2
0
        public SongsFilesDetailsResponse GetAllAlbumsPlayedFromFileToUser(string fileKey, string userId)
        {
            var resp = GetAllAlbumsPlayedFromFile(fileKey);

            if (resp.ErrorCode == (int)SongsFilesResponseCode.Success)
            {
                User foundUser = _userDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == userId);

                if (foundUser == null)
                {
                    resp.ErrorCode  = (int)SongsFilesResponseCode.InvalidUser;
                    resp.FailReason = "No user for this id.";
                }
                else
                {
                    // Remove any items for this user from the table
                    RemoveExistingItemsForUser(foundUser.Name);

                    // Add the albums read from file with this user name
                    lock (Lock)
                    {
                        foreach (var fileAlbum in resp.AlbumsPlayed.OrderBy(x => x.Date))
                        {
                            _albumPlayedDatabase.AddNewItemToDatabase(
                                new AlbumPlayed
                            {
                                Date       = fileAlbum.Date,
                                Location   = fileAlbum.Location,
                                Artist     = fileAlbum.Artist,
                                Album      = fileAlbum.Album,
                                ImagePath  = fileAlbum.ImagePath,
                                PlayerLink = fileAlbum.PlayerLink,

                                UserName = foundUser.Name
                            }
                                );
                        }
                    }
                }
            }

            return(resp);
        }