示例#1
0
        // GET: Film/Details/5
        public ActionResult Details()
        {
            var implFilm = new FilmDao();
            var model    = implFilm.ListAll();

            return(View(model));
        }
示例#2
0
        // GET/POST: /Film/ListeFilm
        public ActionResult ListeFilm(string titre, string realisateur, string pays, string langueOriginale, string genre, string anneeSortie, string acteur, int limit = 10, int page = 1)
        {
            int offset = (page - 1) * limit;

            if (!GestionConnexion.estConnecte())
            {
                return(RedirectToAction("Index", "Home"));
            }

            FilmActionViewModel vm = new FilmActionViewModel
            {
                NbTotalPages   = 0,
                NoPageActuelle = page,
                Films          = new List <Film>(),
                PremiereFois   = false
            };

            FilmDao filmDao = new FilmDao();

            if (titre == null && realisateur == null && pays == null && langueOriginale == null && genre == null && anneeSortie == null && acteur == null)
            {
                vm.PremiereFois = true;
            }
            else if (!(titre == "" && realisateur == "" && pays == "" && langueOriginale == "" && genre == "" && anneeSortie == "" && acteur == ""))
            {
                vm.Films.AddRange(filmDao.RechercherFilmsParCriteres(titre, realisateur, pays, langueOriginale, genre, anneeSortie, acteur,
                                                                     limit, offset));
                vm.NbTotalPages = (filmDao.CountFilmsCriteres(titre, realisateur, pays, langueOriginale, genre, anneeSortie, acteur) + limit - 1) / limit;;
            }

            return(View(vm));
        }
示例#3
0
        // GET: Film
        public ActionResult Index(string id, int episode)
        {
            var implFilm = new FilmDao();
            var model    = implFilm.selectEpisode(id, episode);

            return(View(model));
        }
示例#4
0
        public void Film_Seach_test(string titre, string realisateur, string pays, string langueOriginale,
                                    string genre, string anneeSortie, string acteur, int expedted)
        {
            FilmDao sut = new FilmDao();
            int     cpt = sut.CountFilmsCriteres(titre, realisateur, pays, langueOriginale, genre, anneeSortie, acteur);

            Assert.AreEqual(expedted, cpt);
        }
示例#5
0
        public ActionResult Analyse(string groupeAge, string province, string jourSemaine, string jourMois)
        {
            FilmDao filmDao = new FilmDao();

            int nbLocations = filmDao.AnalyserNbLocations(groupeAge, province, jourSemaine, jourMois);

            ViewBag.nbLocations = nbLocations;
            return(View());
        }
示例#6
0
        public Boolean DeleteFilm(Film filmToDelete)
        {
            List <Comment> toDelete = CommentDao.FindCommentsByFilmId(filmToDelete.Id);

            foreach (Comment c in toDelete)
            {
                DeleteComment(c);
            }

            return(FilmDao.DeleteFilm(filmToDelete));
        }
示例#7
0
        public Film GetFilmFromId(int filmId)
        {
            Film film = FilmDao.FindFilmById(filmId);

            // Retrieve Comments
            if (film != null)
            {
                film.Comment = GetFilmComments(filmId);
            }

            return(film);
        }
示例#8
0
        public ActionResult LouerCopie(int id)
        {
            if (!GestionConnexion.estConnecte())
            {
                return(RedirectToAction("Index", "Home"));
            }

            FilmDao filmDao = new FilmDao();

            filmDao.LouerCopie(id, ((Client)System.Web.HttpContext.Current.Session["UtilisateurConnecté"]).Id);

            return(RedirectToAction("DetailsFilm", "Film", new { id }));
        }
示例#9
0
        public Film CreateFilm(Film filmToCreate)
        {
            // Check if film already exists: same title and year
            List <Film> filmsWithSameTitle = FilmDao.FindFilmsByTitle(filmToCreate.Title);

            if (filmsWithSameTitle.Count(f => f.Year == filmToCreate.Year) > 0)
            {
                Console.WriteLine("Error: film " + filmToCreate.Title + "(" + filmToCreate.Year + ") already exists.");
                return(null);
            }

            return(FilmDao.CreateFilm(filmToCreate));
        }
示例#10
0
        // Update

        public void UpdateScore(Film filmToUpdate)
        {
            if (filmToUpdate.Comment.Count(c => c.Score != null) == 0)
            {
                filmToUpdate.Score = null;
            }

            else
            {
                filmToUpdate.Score = ((double)filmToUpdate.Comment.Sum(c => (c.Score != null) ? c.Score : 0))
                                     / filmToUpdate.Comment.Count(c => c.Score != null);
            }

            FilmDao.UpdateFilm(filmToUpdate);
        }
示例#11
0
        public void Film_Location_Transaction()
        {
            FilmDao   film_dao      = new FilmDao();
            ClientDao client_dao    = new ClientDao();
            Client    result_client = client_dao.GetClientParCourrielEtMotDePasse("*****@*****.**", "hello123");


            Film f1     = film_dao.GetFilmParId(1);
            int  check1 = film_dao.GetNbCopiesRestantes(f1.Id);

            film_dao.LouerCopie(f1.Id, result_client.Id);
            int check2 = film_dao.GetNbCopiesRestantes(f1.Id);

            Assert.AreEqual(check1 - 1, check2);
        }
示例#12
0
        public void Film_Seach_test(int target_id, bool expected_value)
        {
            FilmDao sut         = new FilmDao();
            Film    result_data = sut.GetFilmParId(target_id);
            bool    result;

            if (result_data == null)
            {
                result = false;
            }
            else
            {
                result = true;
            }
            Assert.AreEqual(result, expected_value);
        }
示例#13
0
        // GET: /Film/DetailsFilm
        public ActionResult DetailsFilm(int id)
        {
            List <Film> recommendations = new List <Film>();

            if (!GestionConnexion.estConnecte())
            {
                return(RedirectToAction("Index", "Home"));
            }

            FilmDao           filmDao           = new FilmDao();
            LocationClientDao locationClientDao = new LocationClientDao();

            var film = filmDao.GetFilmParId(id);

            film.NbCopieRestante = filmDao.GetNbCopiesRestantes(id);

            int[] recommendationsIds = filmDao.GetRecommendationsForFilmId(id);

            recommendations.Add(filmDao.GetFilmParId(recommendationsIds[0]));
            recommendations.Add(filmDao.GetFilmParId(recommendationsIds[1]));
            recommendations.Add(filmDao.GetFilmParId(recommendationsIds[2]));

            int nbRented =
                locationClientDao.GetNumberOfRentedCopiesByClientIdAndFilmId(
                    ((Client)System.Web.HttpContext.Current.Session["UtilisateurConnecté"]).Id, id);

            Client client = (Client)System.Web.HttpContext.Current.Session["UtilisateurConnecté"];

            client.NbLocationsEnCours = locationClientDao.GetNbLocationsEnCoursByClientId(client.Id);

            FilmViewModel vm = new FilmViewModel
            {
                Film           = film,
                Client         = (Client)System.Web.HttpContext.Current.Session["UtilisateurConnecté"],
                Message        = nbRented > 0 ? "Vous avez présentement " + nbRented + " copie(s) de ce film de loué" : "",
                Recommandation = recommendations,
                Cote           = filmDao.GetCoteMoyenneForFilmId(id)
            };

            return(View(vm));
        }
示例#14
0
 public FilmController()
 {
     filmDao = new FilmDao();
     userDao = new UserDao();
 }
示例#15
0
 private ServiceFacade()
 {
     UserDao    = new UserDao();
     FilmDao    = new FilmDao();
     CommentDao = new CommentDao();
 }