Example #1
0
        public ActionResult RentMovie(int idFilm, int idClient)
        {
            CLIENT client;
            COPIE  copie;
            FILM   film;
            String message;

            using (var webflixContext = new WebflixContext())
            {
                client = webflixContext.CLIENTs.Find(idClient);
                film   = webflixContext.FILMs.Find(idFilm);
                copie  = film.COPIEs.Where(c => c.DISPONIBLE == true).FirstOrDefault();
                int      clientMaxLoaction      = (int)client.FORFAIT.LOCATIONSMAX;
                int      nombreLocationCourante = client.LOCATIONs.Count(l => l.DATERETOUR == null);
                LOCATION location = new LOCATION();
                if (copie != null && nombreLocationCourante < clientMaxLoaction)
                {
                    location.CLIENT         = client;
                    location.COPIE          = copie;
                    location.DATEDELOCATION = DateTime.Now;
                    webflixContext.LOCATIONs.Add(location);
                    try
                    {
                        webflixContext.SaveChanges();
                        copie.DISPONIBLE = false; // Apres la location
                        webflixContext.SaveChanges();
                        return(RedirectToAction("ShowRentMovie", "Film", new { id = location.IDLOCATION, type = 'S', message = "Votre location a été effectué avec success le" + location.DATEDELOCATION }));
                    }
                    catch (Exception e)
                    {
                        message = e.Message;
                        return(RedirectToAction("ShowRentMovie", "Film", new { id = film.IDFILM, type = 'E', message = message }));
                    }
                }
                else if (nombreLocationCourante >= clientMaxLoaction)
                {
                    return(RedirectToAction("ShowRentMovie", "Film", new { id = film.IDFILM, type = 'E', message = "Vous avez atteint le nombre de copie permis par votre forfait." }));
                }
                else
                {
                    return(RedirectToAction("ShowRentMovie", "Film", new { id = film.IDFILM, type = 'E', message = "Il n'y a plus de copie disponible pour le film que vous souhaitez louer." }));
                }
            }
        }