public void AddSongToUser_UserSong_SongUsageIsUpdatedToTrue() { var user = new User { Id = Guid.NewGuid(), UserId = Guid.NewGuid() }; var song = new Song { Id = Guid.NewGuid(), SongId = Guid.NewGuid(), Album = new Album { Id = Guid.NewGuid() } }; _context.Users.Add(user); _context.Songs.Add(song); _context.SaveChanges(); var userSong = new UserSong { Id = Guid.NewGuid(), UserSongId = Guid.NewGuid(), SongId = song.SongId, User = new User { UserId = user.UserId } }; _inventoryService.AddSongToUser(userSong); var result = _context.Songs.Find(song.Id); Assert.IsTrue(result.IsAttached); }
public void AddSongToUser_UserSong_AddsUserSongToDatabase() { var user = new User { Id = Guid.NewGuid(), UserId = Guid.NewGuid() }; var song = new Song { Id = Guid.NewGuid(), SongId = Guid.NewGuid(), Album = new Album { Id = Guid.NewGuid() } }; _context.Users.Add(user); _context.Songs.Add(song); _context.SaveChanges(); var userSong = new UserSong { Id = Guid.NewGuid(), UserSongId = Guid.NewGuid(), SongId = song.SongId, User = new User { UserId = user.UserId } }; _inventoryService.AddSongToUser(userSong); var result = _context.UserSongs.First(); Assert.AreEqual(result.Id, userSong.Id); }
public async Task <UserSong> AddSongToList(string userId, string name, string artist, string radioStation) { var song = new SongData() { Artist = artist, Name = name, }; await this.db.Songs.AddAsync(song); await this.db.SaveChangesAsync(); var userSong = new UserSong() { Date = DateTime.Now, ListenerId = userId, RadioStation = radioStation, Song = song }; await this.db.UserSongs.AddAsync(userSong); await this.db.SaveChangesAsync(); return(userSong); }
public ActionResult DeleteConfirmed(int id) { UserSong userSong = db.UserSongs.Find(id); db.UserSongs.Remove(userSong); db.SaveChanges(); return(RedirectToAction("Index")); }
public void DeleteUserSong(UserSong userSong) { var userToUpdate = _context.Users.First(x => x.UserId == userSong.User.UserId); var userSongToDelete = userToUpdate.UserSongs.First(x => x.SongId == userSong.SongId); _context.UserSongs.Remove(userSongToDelete); _context.SaveChanges(); }
public void RemoveSongFromUser(UserSong userSong) { _userRepository.DeleteUserSong(userSong); var songToUpdate = _songRepository.Get(userSong.SongId); songToUpdate.IsAttached = false; _songRepository.SaveChanges(); }
public ActionResult Edit([Bind(Include = "Id,SongId,UserId,Rating,PurchaseDate")] UserSong userSong) { if (ModelState.IsValid) { db.Entry(userSong).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.SongId = new SelectList(db.Songs, "Id", "Name", userSong.SongId); ViewBag.UserId = new SelectList(db.Users, "Id", "Name", userSong.UserId); return(View(userSong)); }
public ActionResult Create([Bind(Include = "Id,UserId,SongId,Rating")] UserSong userSong) { if (ModelState.IsValid) { db.UserSongs.Add(userSong); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.UserId = new SelectList(db.Buyers, "Id", "Name", userSong.UserId); ViewBag.SongId = new SelectList(db.Songs, "Id", "Title", userSong.SongId); return(View(userSong)); }
public void AddSongToUser_UserSong_CallSongRepoGet() { var userSong = new UserSong { SongId = Guid.NewGuid(), User = new User { UserId = Guid.NewGuid() } }; _inventoryService.AddSongToUser(userSong); _songRepository.Verify(x => x.Get(It.IsAny <Guid>()), Times.AtLeastOnce); }
public void RemoveSongFromUser_UserSong_CallsSongRepoSave() { var userSong = new UserSong { SongId = Guid.NewGuid(), User = new User { UserId = Guid.NewGuid() } }; _inventoryService.RemoveSongFromUser(userSong); _songRepository.Verify(x => x.SaveChanges(), Times.AtLeastOnce); }
public void RemoveSongFromUser_UserSong_CallsUserRepoDeleteUserSong() { var userSong = new UserSong { SongId = Guid.NewGuid(), User = new User { UserId = Guid.NewGuid() } }; _inventoryService.RemoveSongFromUser(userSong); _userRepository.Verify(x => x.DeleteUserSong(It.IsAny <UserSong>()), Times.AtLeastOnce); }
public void AddSongToUser_UserSong_CallsUserRepoSave() { var userSong = new UserSong { SongId = Guid.NewGuid(), User = new User { UserId = Guid.NewGuid() } }; _inventoryService.AddSongToUser(userSong); _userRepository.Verify(x => x.SaveChanges(), Times.AtLeastOnce); }
public void AddSongToUser(UserSong userSong) { var userToUpdate = _userRepository.Get(userSong.User.UserId); var songToUpdate = _songRepository.Get(userSong.SongId); userSong.User = null; userToUpdate.UserSongs.Add(userSong); songToUpdate.IsAttached = true; _songRepository.SaveChanges(); _userRepository.SaveChanges(); }
// GET: UserSongs/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } UserSong userSong = db.UserSongs.Find(id); if (userSong == null) { return(HttpNotFound()); } return(View(userSong)); }
// GET: UserSongs/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } UserSong userSong = db.UserSongs.Find(id); if (userSong == null) { return(HttpNotFound()); } ViewBag.SongId = new SelectList(db.Songs, "Id", "Name", userSong.SongId); ViewBag.UserId = new SelectList(db.Users, "Id", "Name", userSong.UserId); return(View(userSong)); }
private void BtnAddSong_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { var filename = openFileDialog1.FileName; Song song = new Song(); song.GenreId = ((Genre)cbGenres.SelectedItem).Id; song.SingerId = ((Singer)cbAuthors.SelectedItem).Id; song.SongName = filename; context.Songs.Add(song); UserSong userSong = new UserSong(); userSong.UserId = user.Id; userSong.SongId = song.Id; context.UserSongs.Add(userSong); context.SaveChanges(); } }
public void DeleteUserSong_UserAndSong_RemoveUserSongFromUser() { var song = new Song { Id = Guid.NewGuid(), SongId = Guid.NewGuid() }; var user = new User { Id = Guid.NewGuid(), UserId = Guid.NewGuid(), UserSongs = new List <UserSong> { new UserSong { Id = Guid.NewGuid(), SongId = song.SongId } } }; var userSong = new UserSong { SongId = song.SongId, User = new User { UserId = user.UserId } }; _context.Users.Add(user); _context.SaveChanges(); _userRepository.DeleteUserSong(userSong); var updatedUser = _context.Users.Find(user.Id); const int expected = 0; Assert.AreEqual(expected, updatedUser.UserSongs.Count); }
public void RemoveSongFromUser_UserSong_SongUsageIsUpdatedToFalse() { var song = new Song { Id = Guid.NewGuid(), SongId = Guid.NewGuid(), Album = new Album { Id = Guid.NewGuid() } }; var user = new User { Id = Guid.NewGuid(), UserId = Guid.NewGuid(), UserSongs = new List <UserSong> { new UserSong { Id = Guid.NewGuid(), UserSongId = Guid.NewGuid(), SongId = song.SongId } } }; _context.Songs.Add(song); _context.Users.Add(user); _context.SaveChanges(); var userSong = new UserSong { Id = Guid.NewGuid(), UserSongId = Guid.NewGuid(), SongId = song.SongId, User = new User { UserId = user.UserId } }; _inventoryService.RemoveSongFromUser(userSong); var result = _context.Songs.Find(song.Id); Assert.IsFalse(result.IsAttached); }
public void RemoveSongFromUser_UserSong_DeletesUserSongFromDatabase() { var song = new Song { Id = Guid.NewGuid(), SongId = Guid.NewGuid(), Album = new Album { Id = Guid.NewGuid() } }; var user = new User { Id = Guid.NewGuid(), UserId = Guid.NewGuid(), UserSongs = new List <UserSong> { new UserSong { Id = Guid.NewGuid(), UserSongId = Guid.NewGuid(), SongId = song.SongId } } }; _context.Songs.Add(song); _context.Users.Add(user); _context.SaveChanges(); var userSong = new UserSong { Id = Guid.NewGuid(), UserSongId = Guid.NewGuid(), SongId = song.SongId, User = new User { UserId = user.UserId } }; _inventoryService.RemoveSongFromUser(userSong); var results = _context.UserSongs.ToList(); const int expected = 0; Assert.AreEqual(expected, results.Count); }
public async Task <IActionResult> Put(string username, string title) { try { var userListen = _context.UserSong.Single(us => us.title.Equals(title) && us.username.Equals(username)); userListen.listen_count += 1; _context.Update(userListen); await _context.SaveChangesAsync(); } catch (Exception e) { var userListen = new UserSong() { username = username, title = title, listen_count = 1 }; _context.Add(userListen); await _context.SaveChangesAsync(); } return(Ok()); }
public ActionResult BuyASong(int id, int SongId, int Rating) { User user = db.Users.Find(id); Song song = db.Songs.Find(SongId); ViewBag.Message = $"{ user.Name } bought { song.Name }"; if (song == null) { return(HttpNotFound("no song by that ID")); } if (user.Money >= song.Price) { UserSong newPurchase = new UserSong { SongId = SongId, UserId = id, Rating = Rating, PurchaseDate = new DateTime().Date }; db.UserSongs.Add(newPurchase); user.Money -= song.Price; db.SaveChanges(); } else { ViewBag.Message = $"Not enough money for { user.Name } to buy \"{ song.Name }\" (price: ${ song.Price }) \n{ user.Name } currently owns ${ user.Money }."; } ViewBag.SongId = new SelectList(NotPurchasedYet(id), "Id", "Name"); ViewBag.Rating = new SelectList(new List <int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); ViewBag.theSong = song; return(View(user)); }
public static IApplicationBuilder Seed(this IApplicationBuilder app) { using (var serviceScope = app.ApplicationServices.GetRequiredService <IServiceScopeFactory>().CreateScope()) { serviceScope.ServiceProvider.GetService <SmartRadioDbContext>().Database.Migrate(); var db = serviceScope.ServiceProvider.GetService <SmartRadioDbContext>(); var musicRecognition = serviceScope.ServiceProvider.GetService <IMusicRecognitionService>(); var roleManager = serviceScope.ServiceProvider.GetService <RoleManager <IdentityRole> >(); var userManager = serviceScope.ServiceProvider.GetService <UserManager <User> >(); Task .Run(async() => { if (!await db.Roles.AnyAsync()) { var radioRole = new IdentityRole("Radio"); await roleManager.CreateAsync(radioRole); } if (!await db.Users.AnyAsync()) { var pesho = new User() { UserName = "******", Email = "*****@*****.**", }; var mario = new User() { UserName = "******", Email = "*****@*****.**" }; var misho = new User() { UserName = "******", Email = "*****@*****.**" }; var radio = new User() { UserName = "******", Email = "*****@*****.**" }; await userManager.CreateAsync(pesho, "test12"); await userManager.CreateAsync(mario, "test12"); await userManager.CreateAsync(misho, "test12"); await userManager.CreateAsync(radio, "test12"); await db.SaveChangesAsync(); pesho.Following.Add(new UserFollower() { User2 = mario }); pesho.Following.Add(new UserFollower() { User2 = misho }); await db.SaveChangesAsync(); await userManager.AddToRoleAsync(radio, "Radio"); await db.SaveChangesAsync(); var songFiles = Directory.EnumerateFiles("./wwwroot/songs"); foreach (var songFile in songFiles) { var fileInfo = new FileInfo(songFile); var info = fileInfo.Name.Replace(fileInfo.Extension, "").Split('-'); var songData = new SongData() { Name = info[0], Artist = info[1] }; var fingerprintsList = new List <SongFingerprint>(); var fingerprints = musicRecognition.GetSongData(fileInfo.FullName); int index = 0; foreach (var fingerprint in fingerprints) { var fingerprintModel = new SongFingerprint() { Hash = fingerprint, Offset = index, Song = songData }; fingerprintsList.Add(fingerprintModel); index++; } songData.Fingerprints = fingerprintsList; db.Songs.Add(songData); await db.SaveChangesAsync(); } var userSong = new UserSong() { Date = DateTime.Today, Listener = pesho, RadioStation = "101.2", Song = db.Songs.First() }; db.UserSongs.Add(userSong); await db.SaveChangesAsync(); } }).Wait(); } return(app); }