Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }