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." })); } } }