Beispiel #1
0
        // GET: Livres/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Livre livre = db.Livre.Find(id);

            if (livre == null)
            {
                return(HttpNotFound());
            }
            LivreViewModel lvm = new LivreViewModel(livre);

            lvm.listAuteur = db.Auteur.Where(aut => aut.id_TypeAuteur == 2).Select(sl => new SelectListItem {
                Text = sl.Nom, Value = sl.id_Auteur.ToString()
            }).OrderBy(y => y.Text).ToList();
            lvm.listDessinateur = db.Auteur.Where(aut => aut.id_TypeAuteur == 1).Select(sl => new SelectListItem {
                Text = sl.Nom, Value = sl.id_Auteur.ToString()
            }).OrderBy(y => y.Text).ToList();
            lvm.listCollection = db.Collections.Select(sl => new SelectListItem {
                Text = sl.Nom, Value = sl.id_Collection.ToString()
            }).OrderBy(y => y.Text).ToList();

            return(View(lvm));
        }
        public ActionResult Livre(LivreViewModel livre)
        {
            bool modeleOk = true;

            if (!ModelState.IsValid)
            {
                modeleOk = false;
            }
            // Vérifie que l'auteur existe
            if (dal.ObtenirAuteur(livre.AuteurId) == null)
            {
                modeleOk = false;
                ModelState.AddModelError("AuteurId", Constants.ERROR_AUTEUR_INCONNU);
            }

            // Vérifie qu'il n'existe pas déjà un livre avec le même titre
            if (dal.LivreExiste(livre.Titre))
            {
                modeleOk = false;
                ModelState.AddModelError("Titre", Constants.ERROR_TITRE_EXISTANT);
            }
            // Si une erreur a été détectée, on renvoie vers la page avec le modèle
            if (!modeleOk)
            {
                AlimenterListeAuteur(livre.AuteurId);
                return(View(livre));
            }
            // Pas d'erreur, on créé le livre et on réaffiche la liste des livres
            Livre livreCreer = dal.CreerLivre(livre.Titre, livre.DateParution, livre.AuteurId);

            return(RedirectToAction("Index", "Afficher"));
        }
Beispiel #3
0
        // GET: Afficher/Livre/IDlivre
        // Affiche un livre, son auteur, l'emprunteur actuel et la liste des emprunteurs passés
        public ActionResult Livre(int IDlivre)
        {
            LivreViewModel vm = new LivreViewModel(IDlivre);

            if (vm.LivreExiste)
            {
                return(View(vm));
            }
            else
            {
                return(View("Error"));
            }
        }
Beispiel #4
0
        // GET: Livres/Create
        public ActionResult Create()
        {
            LivreViewModel lvm = new LivreViewModel();

            lvm.listAuteur = db.Auteur.Where(aut => aut.id_TypeAuteur == 2).Select(sl => new SelectListItem {
                Text = sl.Nom, Value = sl.id_Auteur.ToString()
            }).OrderBy(y => y.Text).ToList();
            lvm.listDessinateur = db.Auteur.Where(aut => aut.id_TypeAuteur == 1).Select(sl => new SelectListItem {
                Text = sl.Nom, Value = sl.id_Auteur.ToString()
            }).OrderBy(y => y.Text).ToList();
            lvm.listCollection = db.Collections.Select(sl => new SelectListItem {
                Text = sl.Nom, Value = sl.id_Collection.ToString()
            }).OrderBy(y => y.Text).ToList();
            return(View(lvm));
        }
Beispiel #5
0
        public ActionResult Create(LivreViewModel lvm)
        {
            if (ModelState.IsValid)
            {
                Livre livre = new Livre();
                livre.id_Auteur      = lvm.id_Auteur;
                livre.id_Collection  = lvm.id_Collection;
                livre.id_Dessinateur = lvm.id_Dessinateur;
                livre.Nom            = lvm.Nom;
                //livre = (Livre)lvm;
                db.Livre.Add(livre);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(lvm));
        }
Beispiel #6
0
        public ActionResult Edit(LivreViewModel lvm)
        {
            if (ModelState.IsValid)
            {
                Livre livre = new Livre();
                livre.id_Livre       = lvm.id_Livre;
                livre.id_Auteur      = lvm.id_Auteur;
                livre.id_Collection  = lvm.id_Collection;
                livre.id_Dessinateur = lvm.id_Dessinateur;
                livre.Nom            = lvm.Nom;

                db.Entry(livre).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(lvm));
        }
Beispiel #7
0
        public void Ajouter_Post_Livre_Titre_DejaPresent()
        {
            LivreViewModel livre = new LivreViewModel {
                Titre = "Shinning", DateParution = DateTime.Today.AddDays(-1), AuteurId = 1
            };
            ActionResult resultat = ajouterController.Livre(livre);

            ViewResult view = (ViewResult)resultat;

            Assert.AreEqual(view.Model, livre);
            ModelStateDictionary modelStateDictionary = ajouterController.ModelState;
            ModelState           modelState;

            modelStateDictionary.TryGetValue("Titre", out modelState);
            Assert.AreEqual(modelState.Errors.Count, 1);
            string message = modelState.Errors[0].ErrorMessage;

            Assert.AreEqual(message, Constants.ERROR_TITRE_EXISTANT);
        }
Beispiel #8
0
        public void Ajouter_Post_Livre_AuteurInconnu()
        {
            LivreViewModel livre = new LivreViewModel {
                Titre = "Livre_AuteurInconnu", DateParution = DateTime.Today.AddDays(-1), AuteurId = 99
            };
            ActionResult resultat = ajouterController.Livre(livre);

            ViewResult view = (ViewResult)resultat;

            Assert.AreEqual(view.Model, livre);
            ModelStateDictionary modelStateDictionary = ajouterController.ModelState;
            ModelState           modelState;

            modelStateDictionary.TryGetValue("AuteurId", out modelState);
            Assert.AreEqual(modelState.Errors.Count, 1);
            string message = modelState.Errors[0].ErrorMessage;

            Assert.AreEqual(message, Constants.ERROR_AUTEUR_INCONNU);
        }
Beispiel #9
0
        public void Ajouter_Post_Livre_Titre_NonRenseigne()
        {
            //LivreViewModel livre = new LivreViewModel { Titre = "Livre parue dans le futur", DateParution = DateTime.Today.AddDays(1), AuteurId = 1 };
            LivreViewModel livre = new LivreViewModel {
                Titre = "", DateParution = DateTime.Today, AuteurId = 1
            };

            ajouterController.ValideLeModele(livre);
            ActionResult resultat = ajouterController.Livre(livre);

            ViewResult view = (ViewResult)resultat;

            Assert.AreEqual(view.Model, livre);
            ModelStateDictionary modelStateDictionary = ajouterController.ModelState;
            ModelState           modelState;

            modelStateDictionary.TryGetValue("Titre", out modelState);
            Assert.AreEqual(modelState.Errors.Count, 1);
            string message = modelState.Errors[0].ErrorMessage;
        }
Beispiel #10
0
        public void Ajouter_Post_Livre_OK()
        {
            LivreViewModel livre = new LivreViewModel {
                Titre = "Nouveau livre", DateParution = DateTime.Today.AddDays(-1), AuteurId = 1
            };


            // Vérifie que le livre n'existe pas avant l'appel au controleur
            Assert.IsFalse(dal.LivreExiste(livre.Titre));
            ajouterController.ValideLeModele(livre);
            ActionResult resultat = ajouterController.Livre(livre);

            // Vérifie que le livre existe aprés l'appel au controleur
            Assert.IsTrue(dal.LivreExiste(livre.Titre));

            // Vérifie qu'on est bien redirigé vers l'action Index du controller Afficher
            RedirectToRouteResult redirectToRoute = (RedirectToRouteResult)resultat;

            Assert.AreEqual(redirectToRoute.RouteValues["action"], "Index");
            Assert.AreEqual(redirectToRoute.RouteValues["controller"], "Afficher");
        }
Beispiel #11
0
        public void Ajouter_Post_Livre_DateParution_Aujourdhui()
        {
            LivreViewModel livre = new LivreViewModel {
                Titre = "Livre parue aujourd'hui", DateParution = DateTime.Today, AuteurId = 1
            };

            ajouterController.ValideLeModele(livre);
            ActionResult resultat = ajouterController.Livre(livre);

            ViewResult view = (ViewResult)resultat;

            Assert.AreEqual(view.Model, livre);
            ModelStateDictionary modelStateDictionary = ajouterController.ModelState;
            ModelState           modelState;

            modelStateDictionary.TryGetValue("DateParution", out modelState);
            Assert.AreEqual(modelState.Errors.Count, 1);
            string message = modelState.Errors[0].ErrorMessage;

            Assert.AreEqual(message, Constants.ERROR_DATE_PARUTION_NON_PASSEE);
        }
        // Detail : Livre
        public ActionResult DetailLivre(string codeISBN)
        {
            LivreViewModel livre = new LivreViewModel(codeISBN);

            return(View(livre));
        }
Beispiel #13
0
 public LivreController(ILivreRepository repository)
 {
     _repository = repository;
     _model      = new LivreViewModel(_repository);
 }