public User LogIn() { while (true) { Console.WriteLine("Enter card id number: "); var idCard = InputParser.ToInteger(100, 999); var user = _userRepository.GetUserByIdCard(idCard); LoadingHelpers.Spinner(); if (user != null) { Console.WriteLine($"Welcome {user.FullName}"); return(user); } Console.WriteLine("User card id does not exist"); Console.WriteLine("Try again y/n"); if (!InputParser.ToConfirm()) { Console.WriteLine("Thank you for using rent a video app"); Thread.Sleep(3000); Environment.Exit(0); } } }
private void RentVideo(User user) { Console.Write("Enter movie id:"); var movieId = InputParser.ToInteger( _movieRepository.GetAllMovies().Min(_movie => _movie.Id), _movieRepository.GetAllMovies().Max(_movie => _movie.Id)); var movie = _movieRepository.GetMovieById(movieId); if (movie != null) { if (user.RentedMovies.Any(_rental => _rental.Movie.Id == movieId)) { throw new Exception($"Already rented {movie.Title} please return it first!"); } //var listOfRentedMoviesIds = user.RentedMovies.Select(rental => rental.Movie.Id).ToList(); //if (listOfRentedMoviesIds.Contains(movieId)) //{ // throw new Exception($"Already rented {movie.Title} please return it first!"); //} if (!movie.IsAvailable) { throw new Exception($"Movie {movie.Title} is not aviable at the moment!"); } Console.WriteLine($"Are you sure you want to rent {movie.Title}? y/n"); bool confirm = InputParser.ToConfirm(); if (!confirm) { return; } Console.WriteLine("Renting movie please wait..."); LoadingHelpers.Spinner(); movie.Quantity--; if (movie.Quantity == 0) { movie.IsAvailable = !movie.IsAvailable; } user.RentedMovies.Add(new RentalInfo(movie)); Console.WriteLine("Succesfully rented movie"); Thread.Sleep(2000); } else { throw new Exception($"No movie was found with {movieId} id!"); } }