Пример #1
0
        public IActionResult Details(string id)
        {
            ObjectId loanId = new ObjectId(id);
            Loan     loan   = MovieLoanRepository.GetMovieLoanByMovieLoanId(loanId);

            return(View(loan));
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        //[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"));
        }
Пример #4
0
        public IActionResult ConfirmDelete(string id)
        {
            ObjectId movieLoanId = new ObjectId(id);

            MovieLoanRepository.DeleteMovieLoan(movieLoanId);
            return(Redirect("/MovieLoan"));
        }
Пример #5
0
        public IActionResult Edit(string id, DateTime startDate, DateTime endDate)
        {
            ObjectId loanId = new ObjectId(id);

            MovieLoanRepository.UpdateMovieLoan(loanId, startDate, endDate);

            return(Redirect("/MovieLoan"));
        }
Пример #6
0
        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);
        }
Пример #7
0
        /// <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");
            }
        }
Пример #8
0
        /// <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}");
                }
            }
        }
Пример #9
0
        /// <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);
            }
        }
Пример #10
0
        public IActionResult Index()
        {
            List <Loan> loans = MovieLoanRepository.GetAllMovieLoans();

            return(View(loans));
        }