public async Task <ActionResult> ShowFilm(int id) { Film film = db.Films.Where(f => f.FilmID == id).FirstOrDefault(); film.FilmDetails = db.FilmDetails.Where(fd => fd.FilmID == id).FirstOrDefault(); if (film == null) { return(RedirectToAction("NoSuchFilm")); } bool blocked = await IsBlocked(id); if (blocked) { return(RedirectToAction("GeoBlocked")); } MemberFilm memberFilm = db.MemberFilms.Where(mf => mf.FilmID == id && mf.MemberID == CurrentMember.MemberID).FirstOrDefault(); if (memberFilm == null) { return(RedirectToAction("NotBooked")); } string token = memberFilm.Token; if (token == null) { token = GetMemberFilmToken(memberFilm.FilmID, memberFilm.MemberID); } ShowFilmViewModel vm = new ShowFilmViewModel() { FilmID = film.FilmID, MemberID = CurrentMember.MemberID, Film = film, Token = token, Source = film.Source }; film.Watched++; db.SaveChanges(); return(View(vm)); }
public ActionResult ShowFilm(int id) { WebflixContext wfcontext = new WebflixContext(); var film = wfcontext.FILMs.Find(id); var idRealisateur = film.IDREALISATEUR; var realisateur = wfcontext.PERSONNESFILMs.Find(idRealisateur); var cote = new WebflixContext().Database.SqlQuery <Cote>("Select moyenne, idfilm from ma_vue_moyenne where idfilm = " + film.CODE).FirstOrDefault(); // film_j = id film recommander var recommendations = new WebflixContext().Database.SqlQuery <FilmRecommendation>("Select vu.correlation, CASE vu.id_film_j WHEN " + film.CODE + " THEN vu.id_film_k ELSE vu.id_film_J END AS film from ma_vue_correlations vu where (vu.id_film_k = " + film.CODE + " OR vu.id_film_j = " + film.CODE + ") AND CASE VU.ID_FILM_J WHEN " + film.CODE + " THEN vu.id_film_k ELSE vu.id_film_J END NOT IN((SELECT code FROM FILM INNER JOIN COPIE ON COPIE.IDFILM = FILM.IDFILM INNER JOIN LOCATION ON LOCATION.IDCOPIE = COPIE.IDCOPIE WHERE LOCATION.IDCLIENT = 13 )) Order By correlation desc OFFSET 0 ROWS FETCH NEXT 3 ROWS ONLY").ToList(); List <FILM> all_recommendation = new List <FILM>(); foreach (var recommendation in recommendations) { var recommendationss = recommendation.film.ToString(); all_recommendation.Add(wfcontext.FILMs.Where(f => f.CODE == recommendationss).FirstOrDefault()); } ShowFilmViewModel sfvm = new ShowFilmViewModel(film, realisateur, cote, all_recommendation); return(View(sfvm)); }