public IActionResult Details(string id) { ObjectId loanId = new ObjectId(id); Loan loan = MovieLoanRepository.GetMovieLoanByMovieLoanId(loanId); return(View(loan)); }
/// <summary> /// Compares start date and end date to already lend out movie, if the dates interferes with each other, numberOfCopies -= 1 /// </summary> /// <param name="movieId">the movie to borrow</param> /// <param name="numberOfCopies">number of copies of the chosen movie</param> /// <param name="date">the selected start date</param> /// <returns>how many copies that remains</returns> public static int Movie(ObjectId id, int numberOfCopies, DateTime startDate, DateTime endDate) { List <Loan> loans = MovieLoanRepository.GetMovieLoansById(id); foreach (Loan loan in loans) { int checkStartDate = Validations.CompareDates(startDate, loan.StartDate); int checkEndDate = Validations.CompareDates(endDate, loan.EndDate); if (checkStartDate >= 0 && checkEndDate <= 0) { numberOfCopies -= 1; } else if (true) { checkStartDate = Validations.CompareDates(endDate, loan.StartDate); checkEndDate = Validations.CompareDates(endDate, loan.EndDate); if (checkStartDate >= 0 && checkEndDate <= 0) { numberOfCopies -= 1; } } } return(numberOfCopies); }
//[ValidateAntiForgeryToken] public IActionResult Create(string memberId, string movieId, DateTime startDate, DateTime endDate) { ObjectId memberOId = new ObjectId(memberId); ObjectId movieOId = new ObjectId(movieId); Movie movie = MovieRepository.GetMovieById(movieOId); Loan loan = CreateLoan(memberOId, movie.Id, startDate, endDate); int copiesRemaining = CheckLoansToCopies.Movie(movie.Id, movie.NumberOfCopies, startDate, endDate); if (copiesRemaining > 0) { MovieLoanRepository.InsertMovie(loan); return(Redirect("/MovieLoan")); } else if (copiesRemaining <= 0) { SerilogMVC(movie); string errorMessage = "No availiable copies at that date. Please try an other one"; MovieLoanModel movieLoanModel = new MovieLoanModel(); movieLoanModel.ErrorMessage = errorMessage; return(View(movieLoanModel)); } return(Redirect("/MovieLoan")); }
public IActionResult ConfirmDelete(string id) { ObjectId movieLoanId = new ObjectId(id); MovieLoanRepository.DeleteMovieLoan(movieLoanId); return(Redirect("/MovieLoan")); }
public IActionResult Edit(string id, DateTime startDate, DateTime endDate) { ObjectId loanId = new ObjectId(id); MovieLoanRepository.UpdateMovieLoan(loanId, startDate, endDate); return(Redirect("/MovieLoan")); }
private static void LoanProcessAvailableMovies(Member member, Movie movie, DateTime startDate, DateTime endDate) { Loan loan = Factory.CreateLoan(startDate, endDate, member); loan.MovieArticle = movie; MovieLoanRepository.InsertMovie(loan); StandardMessages.LoanComplete(movie.Name, loan.EndDate); }
/// <summary> /// the user gets to choose which movie loan of the members movie loans to return /// the book loans endDate gets updated to DateTime.Today /// </summary> public static void UpdateMovieLoan(Member member) { Loan loanToReturn = SelectLoanById.SelectMovieLoan(member); if (loanToReturn != null) { DateTime returnDate = DateTime.Today; MovieLoanRepository.ReturnMovie(loanToReturn, returnDate); StandardMessages.ItemReturned("movie"); } else { StandardMessages.NothingToReturn("movies"); } }
/// <summary> /// Prints all movie loans with the id of the movie the user wanted to borrow /// </summary> /// <param name="id">movie id of the wanted book</param> public static void PrintMovieLoansList(ObjectId id) { List <Loan> loans = MovieLoanRepository.GetMovieLoansById(id); StandardMessages.ListAllItems("loans"); DateTime today = DateTime.Today; foreach (Loan loan in loans) { int result = Validations.CompareDates(today, loan.EndDate); if (result < 0) { var startDate = loan.StartDate.ToString("yyyy-MM-dd"); var endDate = loan.EndDate.ToString("yyyy-MM-dd"); Console.WriteLine($"{loan.MovieArticle.Name} - {loan.Member.Name} - {startDate} - {endDate}"); } } }
/// <summary> /// The user selects a movie loan by index and gets the chosen movie loan returned /// </summary> /// <returns>the chosen movie loan</returns> public static Loan SelectMovieLoan(Member member) { Movie movie = SelectMovieById.SelectMovie("return"); if (movie != null) { List <Loan> loans = MovieLoanRepository.GetMovieLoansByMember(member); StandardMessages.ListAllItems("movie loans"); int i = 1; foreach (Loan loan in loans) { var outputDate = loan.EndDate.ToString("yyyy-MM-dd"); Console.WriteLine($"{i} {loan.Member.Name} {loan.MovieArticle.Name} {outputDate}"); i++; } StandardMessages.SelectItemToDelete("movie", "return"); string input = Console.ReadLine(); if (input != "0") { int index = Validations.ParseInt(input); index = Validations.TryAgain(index); bool isValid = Validations.SelectedIndex(index, i, loans.Count); if (isValid) { return(loans[index - 1]); } else { StandardMessages.InvalidOption(); return(null); } } return(null); } else { return(null); } }
public IActionResult Index() { List <Loan> loans = MovieLoanRepository.GetAllMovieLoans(); return(View(loans)); }