예제 #1
0
        public void SelectionIncorrectAmountSelectedSeats0()
        {
            Mock <IHallMovieRepository>  mock1 = new Mock <IHallMovieRepository>();
            Mock <IMovieRepository>      mock2 = new Mock <IMovieRepository>();
            Mock <IHallLayoutRepository> mock3 = new Mock <IHallLayoutRepository>();
            Mock <ITicketRepository>     mock4 = new Mock <ITicketRepository>();

            HallMovieController target = new HallMovieController(mock1.Object, mock2.Object, mock3.Object, mock4.Object);

            HallMovieViewModel model = new HallMovieViewModel()
            {
                order = new Order {
                    TotalTickets = 2
                }
            };

            target.TempData["hallMovieViewModel"] = model;


            var result = target.Selection(null, null) as ViewResult;

            result.Equals(new HallMovieViewModel {
                MovieID = 1, hallLayout = new HallLayout {
                    HallLayoutID = 1, Rows = 10, SeatsPerRow = 10
                }, HallMovie = new HallMovie {
                    HallMovieID = 1, HallID = 1, LadiesNight = false
                }
            });
            result.Equals("Selection");
        }
예제 #2
0
        public ActionResult Print()
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            TempData["hallMovieViewModel"] = hallMovieViewModel;
            return(new ViewAsPdf("Print", hallMovieViewModel));
        }
예제 #3
0
        public ViewResult IDealPayment()
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            TempData["hallMovieViewModel"] = hallMovieViewModel;
            return(View("IDealPayment"));
        }
예제 #4
0
        public void PostCardPaymentTest()
        {
            Mock <ITicketRepository> TicketRepo         = new Mock <ITicketRepository>();
            Mock <IOrderRepository>  OrderRepo          = new Mock <IOrderRepository>();
            HallMovieViewModel       hallMovieViewModel = new HallMovieViewModel()
            {
                order = new Order()
            };

            var test = new PaymentController(TicketRepo.Object, OrderRepo.Object);

            test.TempData["hallMovieViewModel"] = new HallMovieViewModel()
            {
                order = new Order()
            };
            CardPaymentViewModel model = new CardPaymentViewModel()
            {
                CardNumber     = "1928374657483920",
                ExpiryMonth    = 3,
                ExpiryYear     = 3000,
                SecurityNumber = "123"
            };

            model.checkExpired(model.ExpiryMonth, model.ExpiryYear);
            var result = test.CardPayment(model).ViewName;

            Assert.AreEqual(result, "Success");
        }
예제 #5
0
        public ActionResult PrintBarCode()
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            TempData["hallMovieViewModel"] = hallMovieViewModel;
            Code128BarcodeDraw bc128 = BarcodeDrawFactory.Code128WithChecksum;

            System.Drawing.Image img = bc128.Draw("" + hallMovieViewModel.order.PrintID, 40);

            img.Save(Server.MapPath("../Barcodes/") + hallMovieViewModel.order.PrintID.ToString(), ImageFormat.Jpeg);

            return(new ViewAsPdf("PrintBarCode", hallMovieViewModel));
        }
예제 #6
0
        public ActionResult PrintQRCode()
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            TempData["hallMovieViewModel"] = hallMovieViewModel;

            QRCodeEncoder enq = new QRCodeEncoder();
            Bitmap        img = enq.Encode(hallMovieViewModel.order.PrintID.ToString());

            img.Save(Server.MapPath("../QRCodes/") + hallMovieViewModel.order.PrintID.ToString(), ImageFormat.Jpeg);

            return(new ViewAsPdf("PrintQRCode", hallMovieViewModel));
        }
예제 #7
0
        public void DescriptionPostTickets0()
        {
            Mock <IHallMovieRepository>  mock1 = new Mock <IHallMovieRepository>();
            Mock <IMovieRepository>      mock2 = new Mock <IMovieRepository>();
            Mock <IHallLayoutRepository> mock3 = new Mock <IHallLayoutRepository>();
            Mock <ITicketRepository>     mock4 = new Mock <ITicketRepository>();

            HallMovieController target = new HallMovieController(mock1.Object, mock2.Object, mock3.Object, mock4.Object);

            mock3.Setup(m => m.GetOneHallLayout(1)).Returns(new HallLayout {
                HallLayoutID = 1, Rows = 10, SeatsPerRow = 10
            });
            mock1.Setup(m => m.GetOneHallMovie(1)).Returns(new HallMovie {
                HallMovieID = 1, HallID = 1, LadiesNight = false, Hall = new Hall {
                    HallID = 1, Capacity = 50, HallLayoutID = 1
                }
            });

            mock4.Setup(m => m.GetAllTickets(1)).Returns(new List <Ticket> {
                new Ticket {
                    TicketID = 1, HallMovieID = 1,
                }, new Ticket {
                    TicketID = 1, HallMovieID = 1,
                }
            });


            HallMovieViewModel model = new HallMovieViewModel()
            {
                HallMovieID = 1, HallMovie = new HallMovie {
                    HallID = 1
                }, MovieID = 1, hallLayout = new HallLayout {
                }, order = new Order {
                }
            };

            var result = target.Description(model) as ViewResult;

            result.Equals(new HallMovieViewModel {
                MovieID = 1, hallLayout = new HallLayout {
                    HallLayoutID = 1, Rows = 10, SeatsPerRow = 10
                }, HallMovie = new HallMovie {
                    HallMovieID = 1, HallID = 1, LadiesNight = false
                }
            });
            result.Equals("Description");
        }
예제 #8
0
        public ViewResult Description(HallMovieViewModel hallMovieViewModel)
        {
            hallMovieViewModel.HallMovie  = HallMovieRepo.GetOneHallMovie(hallMovieViewModel.HallMovieID);
            hallMovieViewModel.hallLayout = HallLayoutRepo.GetOneHallLayout(hallMovieViewModel.HallMovie.HallID);

            hallMovieViewModel.AllTickets = TicketRepo.GetAllTickets(hallMovieViewModel.HallMovieID).ToList();
            int tickets = hallMovieViewModel.order.getTotalTickets();

            if (hallMovieViewModel.order.TotalTickets == 0)
            {
                ViewBag.ticketAmountError      = "U heeft geen kaartjes geselecteerd.";
                TempData["hallMovieViewModel"] = hallMovieViewModel;
                return(View("Description", hallMovieViewModel));
            }
            TempData["hallMovieViewModel"] = hallMovieViewModel;
            return(View("Selection", hallMovieViewModel));
        }
예제 #9
0
        public void SelectionCorrectAmountSelected2Normal()
        {
            Mock <IHallMovieRepository>  mock1 = new Mock <IHallMovieRepository>();
            Mock <IMovieRepository>      mock2 = new Mock <IMovieRepository>();
            Mock <IHallLayoutRepository> mock3 = new Mock <IHallLayoutRepository>();
            Mock <ITicketRepository>     mock4 = new Mock <ITicketRepository>();


            HallMovieController target = new HallMovieController(mock1.Object, mock2.Object, mock3.Object, mock4.Object);

            HallMovieViewModel model = new HallMovieViewModel()
            {
                MovieID = 2, TempTickets = new List <Ticket> {
                }, order = new Order {
                    NormalTickets = 2, TotalTickets = 2
                }
            };

            target.TempData["hallMovieViewModel"] = model;

            var result = target.Selection(new int[] { 20 }, new int[] { 2 }) as ViewResult;

            mock3.Setup(m => m.GetOneHallLayout(1)).Returns(new HallLayout {
                HallLayoutID = 1, Rows = 10, SeatsPerRow = 10
            });
            mock1.Setup(m => m.GetOneHallMovie(1)).Returns(new HallMovie {
                HallMovieID = 1, HallID = 1, LadiesNight = false, Hall = new Hall {
                    HallID = 1, Capacity = 50, HallLayoutID = 1
                }
            });
            mock2.Setup(m => m.GetOneMovie(1)).Returns(new Movie {
                MovieID = 1
            });

            HallMovieViewModel model2 = new HallMovieViewModel()
            {
                MovieID = 1, hallLayout = new HallLayout {
                    HallLayoutID = 1, Rows = 10, SeatsPerRow = 10
                }, HallMovie = new HallMovie {
                    HallMovieID = 1, HallID = 1, LadiesNight = false
                }
            };

            result.Equals("Overview");
        }
예제 #10
0
        public ViewResult Description(int HallMovieID = 0)
        {
            if (HallMovieID.Equals(0)) /*|| HallMovieID > iHallMovieRepository.GetAllHallMovies().Count()*/
            {
                return(View("Description"));
            }
            else
            {
                int FreeSeats = HallMovieRepo.GetOneHallMovie(HallMovieID).Hall.HallLayout.Rows *HallMovieRepo.GetOneHallMovie(HallMovieID).Hall.HallLayout.SeatsPerRow - TicketRepo.GetAllTickets(HallMovieID).Count();
                ViewBag.FreeSeats = FreeSeats;
                HallMovieViewModel model = new HallMovieViewModel()
                {
                    HallMovie = HallMovieRepo.GetOneHallMovie(HallMovieID)
                };

                return(View("Description", model));
            }
        }
예제 #11
0
        public ActionResult Print(PrintViewModel PrintViewModel)
        {
            Order Order = OrderRepo.GetOrderOnPrintID(PrintViewModel.PrintID);

            List <Ticket> Tickets = TicketRepo.GetAllTicketsWithOrderID(Order.OrderID);

            HallMovie HallMovie = HallMovieRepo.GetOneHallMovie(Tickets.FirstOrDefault().HallMovieID);

            Movie Movie = MovieRepo.GetOneMovie(HallMovie.MovieID);

            HallMovieViewModel HallMovieViewModel = new HallMovieViewModel();

            HallMovieViewModel.order       = Order;
            HallMovieViewModel.TempTickets = Tickets;
            HallMovieViewModel.Movie       = Movie;
            HallMovieViewModel.HallMovie   = HallMovie;

            return(new ViewAsPdf("Order", HallMovieViewModel));
        }
예제 #12
0
        public ViewResult Selection(int[] rows, int[] selectedSeats)
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            if (selectedSeats == null || hallMovieViewModel.order.getTotalTickets() != selectedSeats.Count())
            {
                ViewBag.seatError = "U heeft niet het juiste aantal stoelen geselecteerd. u heeft: " + hallMovieViewModel.order.getTotalTickets() + " ticket(s) besteld.";
                TempData["hallMovieViewModel"] = hallMovieViewModel;
                return(View("Selection", hallMovieViewModel));
            }

            int normalTicketsProcessed = 0, elderlyTicketsProcessed = 0, childTicketsProcessed = 0, studentTicketsProcessed = 0;

            foreach (int seat in selectedSeats)
            {
                String type = "";

                int row = rows[seat - 1];
                if (hallMovieViewModel.order.NormalTickets != 0 && hallMovieViewModel.order.NormalTickets > normalTicketsProcessed)
                {
                    /*process */
                    type = "Standaard";

                    normalTicketsProcessed++;
                }
                else if (hallMovieViewModel.order.ElderlyTickets != 0 && hallMovieViewModel.order.ElderlyTickets > elderlyTicketsProcessed)
                {
                    /*process */
                    type = "65+";
                    elderlyTicketsProcessed++;
                }
                else if (hallMovieViewModel.order.ChildTickets != 0 && hallMovieViewModel.order.ChildTickets > childTicketsProcessed)
                {
                    /*process */
                    type = "Kind";
                    childTicketsProcessed++;
                }
                else if (hallMovieViewModel.order.StudentTickets != 0 && hallMovieViewModel.order.StudentTickets > studentTicketsProcessed)
                {
                    /*process */
                    type = "Student";
                    studentTicketsProcessed++;
                }


                hallMovieViewModel.addTempTicket(new Ticket {
                    HallMovieID = hallMovieViewModel.HallMovieID, Type = type, Seat = seat, Row = row,
                });
            }
            hallMovieViewModel.HallMovie  = HallMovieRepo.GetOneHallMovie(hallMovieViewModel.HallMovieID);
            hallMovieViewModel.hallLayout = HallLayoutRepo.GetOneHallLayout(hallMovieViewModel.HallMovie.HallID);
            hallMovieViewModel.Movie      = MovieRepo.GetOneMovie(hallMovieViewModel.MovieID);

            Discount discount = new Discount(hallMovieViewModel.order, hallMovieViewModel.HallMovie, hallMovieViewModel.Movie);

            if (hallMovieViewModel.HallMovie.LadiesNight == true)
            {
                hallMovieViewModel.order.NormalTicketsPrice = discount.calcLadiesNight();
                hallMovieViewModel.order.TotalPrice         = discount.calcTotalPrice();
            }
            else
            {
                hallMovieViewModel.order.StudentTicketsPrice     = discount.calcStudentDiscount();
                hallMovieViewModel.order.ChildTicketsPrice       = discount.calcChildDiscount();
                hallMovieViewModel.order.ElderlyTicketsPrice     = discount.calcElderlyDiscount();
                hallMovieViewModel.order.NormalTicketsPrice      = discount.calcNoDiscount();
                hallMovieViewModel.order.TotalPrice              = discount.calcTotalPrice();
                hallMovieViewModel.order.PopcornArrangementPrice = discount.calcPopcornArrangementPrice();
            }

            TempData["hallMovieViewModel"] = hallMovieViewModel;
            return(View("Overview", hallMovieViewModel));
        }
예제 #13
0
 public ActionResult Selection(HallMovieViewModel hallMovieViewModel)
 {
     return(new EmptyResult());
 }
예제 #14
0
        public ViewResult IDealPayment(IDealPaymentViewModel ideal)
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            try
            {
                if (ModelState.IsValid)
                {
                    //hallMovieViewModel.order.OrderID = OrderRepo.GetMaxOrderID() + 1;

                    bool PrintIDUnique = false;

                    Random Random = new Random();

                    int PrintID = Random.Next(100000000, 999999999);

                    if (OrderRepo.CheckPrintIDExist(PrintID) == false)
                    {
                        hallMovieViewModel.order.PrintID = PrintID;
                        OrderRepo.AddOrder(hallMovieViewModel.order);
                        hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(PrintID);
                    }
                    else
                    {
                        while (PrintIDUnique == false)
                        {
                            int NewPrintID = Random.Next(100000000, 999999999);
                            if (OrderRepo.CheckPrintIDExist(NewPrintID) == false)
                            {
                                hallMovieViewModel.order.PrintID = NewPrintID;
                                OrderRepo.AddOrder(hallMovieViewModel.order);
                                PrintIDUnique            = true;
                                hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(NewPrintID);
                            }
                            else
                            {
                                PrintIDUnique = false;
                            }
                        }
                    }



                    foreach (Ticket ticket in hallMovieViewModel.TempTickets)
                    {
                        ticket.OrderID = hallMovieViewModel.order.OrderID;
                        TicketRepo.AddTicket(ticket);
                    }

                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    return(View("Success", hallMovieViewModel));
                }
                else
                {
                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    return(View("IDealPayment"));
                }
            }
            catch (Exception a)
            {
                return(View("IDealPayment"));
            }
        }
예제 #15
0
        public ViewResult CardPayment(CardPaymentViewModel card)
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            if (ModelState.IsValid)
            {
                card.checkExpired(card.ExpiryMonth, card.ExpiryYear);
                if (card.Expired == false)
                {
                    bool PrintIDUnique = false;

                    Random Random = new Random();

                    int PrintID = Random.Next(100000000, 999999999);

                    if (OrderRepo.CheckPrintIDExist(PrintID) == false)
                    {
                        hallMovieViewModel.order.PrintID = PrintID;
                        OrderRepo.AddOrder(hallMovieViewModel.order);
                        hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(PrintID);
                    }
                    else
                    {
                        while (PrintIDUnique == false)
                        {
                            int NewPrintID = Random.Next(100000000, 999999999);
                            if (OrderRepo.CheckPrintIDExist(NewPrintID) == false)
                            {
                                hallMovieViewModel.order.PrintID = NewPrintID;
                                OrderRepo.AddOrder(hallMovieViewModel.order);
                                PrintIDUnique            = true;
                                hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(NewPrintID);
                            }
                            else
                            {
                                PrintIDUnique = false;
                            }
                        }
                    }

                    foreach (Ticket ticket in hallMovieViewModel.TempTickets)
                    {
                        ticket.OrderID = hallMovieViewModel.order.OrderID;
                        TicketRepo.AddTicket(ticket);
                    }

                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    return(View("Success", hallMovieViewModel));
                }
                else
                {
                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    this.ModelState.AddModelError("Expired", "Uw kaart is verlopen");
                    return(View("CardPayment"));
                }
            }
            else
            {
                this.ModelState.AddModelError("Expired", "Uw kaart is verlopen");
                return(View("CardPayment"));
            }
        }
예제 #16
0
        public ActionResult PinPayment(HallMovieViewModel HallMovieViewModel)
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            hallMovieViewModel.Saldo = HallMovieViewModel.Saldo;
            try
            {
                if (HallMovieViewModel.Saldo > hallMovieViewModel.order.TotalPrice)
                {
                    //hallMovieViewModel.order.OrderID = OrderRepo.GetMaxOrderID() + 1;

                    bool PrintIDUnique = false;

                    Random Random = new Random();

                    int PrintID = Random.Next(100000000, 999999999);

                    if (OrderRepo.CheckPrintIDExist(PrintID) == false)
                    {
                        hallMovieViewModel.order.PrintID = PrintID;
                        OrderRepo.AddOrder(hallMovieViewModel.order);
                        hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(PrintID);
                    }
                    else
                    {
                        while (PrintIDUnique == false)
                        {
                            int NewPrintID = Random.Next(100000000, 999999999);
                            if (OrderRepo.CheckPrintIDExist(NewPrintID) == false)
                            {
                                hallMovieViewModel.order.PrintID = NewPrintID;
                                OrderRepo.AddOrder(hallMovieViewModel.order);
                                PrintIDUnique            = true;
                                hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(NewPrintID);
                            }
                            else
                            {
                                PrintIDUnique = false;
                            }
                        }
                    }



                    foreach (Ticket ticket in hallMovieViewModel.TempTickets)
                    {
                        ticket.OrderID = hallMovieViewModel.order.OrderID;
                        TicketRepo.AddTicket(ticket);
                    }

                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    return(new ViewAsPdf("Succes", hallMovieViewModel));
                }
                else
                {
                    ViewBag.Error = "Onvoldoende saldo";
                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    return(View("Payment"));
                }
            }
            catch (Exception a)
            {
                return(View("Payment"));
            }
        }