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