public ActionResult Save(AlbumFormViewModel albumViewModel) { //If it is a new album create it if (albumViewModel.album.albumId == 0) { var album = albumViewModel.album; Genre genre = _context.genres.SingleOrDefault(c => c.id == albumViewModel.genreChosen); album.genres.Add(genre); _context.albums.Add(albumViewModel.album); _context.SaveChanges(); } else { //Update database album Album databaseAlbum = _context.albums.Single(c => c.albumId == albumViewModel.album.albumId); Album viewAlbum = albumViewModel.album; databaseAlbum.albumName = viewAlbum.albumName; databaseAlbum.bandName = viewAlbum.bandName; databaseAlbum.year = viewAlbum.year; Genre genre = _context.genres.SingleOrDefault(c => c.id == albumViewModel.genreChosen); databaseAlbum.genres.Clear(); databaseAlbum.genres.Add(genre); } _context.SaveChanges(); //Send user to new album's info page. String redirect = "GetAlbum/" + albumViewModel.album.albumId; return(RedirectToAction(redirect, "Album")); }
public IHttpActionResult UpdateAlbumRank(int id, double expected, int result) { var databaseAlbumRank = _context.userAlbumRanks.SingleOrDefault(c => c.id == id); if (databaseAlbumRank == null) { return(NotFound()); } databaseAlbumRank.timesSeen++; int k = eloMethods.getKConstant(databaseAlbumRank.timesSeen, databaseAlbumRank.rank); databaseAlbumRank.rank = eloMethods.getNewRank(expected, result, k, databaseAlbumRank.rank); _context.SaveChanges(); return(Ok()); }
public IHttpActionResult TrustUser(string email, string username) { var user = _context.Users.SingleOrDefault(x => x.Email == email && x.UserName == username); if (user == null) { return(NotFound()); } var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(_context)); try { UserManager.AddToRole(user.Id, "Trusted"); _context.SaveChanges(); return(Ok()); } catch { return(BadRequest()); } }
public IHttpActionResult CreateAlbum(AlbumDto albumDto) { if (!ModelState.IsValid) { return(BadRequest()); } var album = Mapper.Map <AlbumDto, Album>(albumDto); _context.albums.Add(album); _context.SaveChanges(); albumDto.albumId = album.albumId; return(Created(new Uri(Request.RequestUri + "/" + album.albumId), albumDto)); }
public AlbumRankerViewModel PickTwoAlbumRankerViewModels(string userId) { var dontChose = _context.userAlbumRanks.Where(x => x.knowAlbum != true && x.userId == userId).Select(x => x.albumId).ToList(); var albumsChosen = _context.albums.OrderBy(x => Guid.NewGuid()).Where(x => !dontChose.Contains(x.albumId)).Take(2).ToList(); int album1Id = albumsChosen[0].albumId; int album2Id = albumsChosen[1].albumId; var albumRanks = _context.userAlbumRanks.Where(x => x.userId.Equals(userId) && (x.albumId == album1Id || x.albumId == album2Id)).ToList(); if (albumRanks.Count < 2) { if (albumRanks.Count == 0) { foreach (var album in albumsChosen) { var toInput = createNewRank(album, userId); albumRanks.Add(toInput); _context.userAlbumRanks.Add(toInput); } ; } else { if (albumRanks[0].albumId == albumsChosen[0].albumId) { var toInput = createNewRank(albumsChosen[1], userId); albumRanks.Add(toInput); _context.userAlbumRanks.Add(toInput); } else { var toInput = createNewRank(albumsChosen[0], userId); albumRanks.Insert(0, toInput); _context.userAlbumRanks.Add(toInput); } } _context.SaveChanges(); } ; var indexOfAlbum1Rank = -1; var indexOfAlbum2Rank = -1; if (albumRanks[0].albumId == album1Id) { indexOfAlbum1Rank = 0; indexOfAlbum2Rank = 1; } else { indexOfAlbum1Rank = 1; indexOfAlbum2Rank = 0; } var translatedAlbum1Rank = eloMethods.convertRank(albumRanks[indexOfAlbum1Rank].rank); var translatedAlbum2Rank = eloMethods.convertRank(albumRanks[indexOfAlbum2Rank].rank); var expecteds = eloMethods.getExpectedScores(translatedAlbum1Rank, translatedAlbum2Rank); var albumRankerViewModel = new AlbumRankerViewModel() { album1 = albumsChosen[0], album2 = albumsChosen[1], album1Expected = expecteds.Item1, album2Expected = expecteds.Item2, albumRank1 = albumRanks[indexOfAlbum1Rank], albumRank2 = albumRanks[indexOfAlbum2Rank], userId = userId, album1path = getAlbumCoverPath(album1Id), album2path = getAlbumCoverPath(album2Id) }; return(albumRankerViewModel); }