// GET: Tickets public IActionResult Index(int movieOrderID) { List <Ticket> t = _context.Tickets .Where(ms => ms.MovieShowing.IsPublished == true) .Include(ms => ms.MovieShowing) .ThenInclude(m => m.Movie) .Include(ms => ms.MovieOrder) .ThenInclude(ms => ms.Customer) .Include(ms => ms.MovieOrder) .ThenInclude(ms => ms.Tickets) .Where(ms => ms.MovieOrder.MovieOrderID == movieOrderID) .ToList(); var group = t.GroupBy(t => t.MovieOrder.MovieOrderID); foreach (var g in group) { MovieOrder mo = g.ToList().First().MovieOrder; if (mo.Customer.Age >= 60) { mo.SeniorDiscount(); } } return(View(t)); }
public Boolean CheckConflictingStarts(MovieOrder movieOrder) { HashSet <MovieShowing> uniqueShowings = new HashSet <MovieShowing>(); foreach (Ticket t in movieOrder.Tickets) { uniqueShowings.Add(t.MovieShowing); } List <MovieShowing> uniqueShow = uniqueShowings.ToList().OrderBy(c => c.StartTime).ToList(); List <Ticket> ticks = new List <Ticket>(); foreach (MovieShowing ms in uniqueShow) { ticks.Add(ms.Tickets.First()); } for (int i = 0; i < ticks.Count() - 1; i++) { if ((ticks[i].MovieShowing.EndTime > ticks[i + 1].MovieShowing.StartTime) && (ticks[i].MovieShowing != ticks[i + 1].MovieShowing)) { return(true); } } return(false); }
public int CreateOrder(MovieOrder order) { //order have create and is going to update information decimal orderTotal = 0; var cartItem = GetCartItems(); // Iterate over the items in the cart, adding the order details for each foreach (var item in cartItem) { var orderDetail = new MovieOrderDetail() { MovieId = item.MovieId, MovieOrderId = order.MovieOrderId, UnitPrice = item.Movie.MoviePrice, Quantity = item.Count }; // Set the order total of the shopping cart orderTotal += (item.Count * item.Movie.MoviePrice); this.storeDB.MovieOrderDetails.Add(orderDetail); } // Set the order's total to the orderTotal count order.Total = orderTotal; //Save Order this.storeDB.MovieOrders.Add(order); this.storeDB.SaveChanges(); // Empty the shopping cart EmptyCart(); // Return the OrderId as the confirmation number return(order.MovieOrderId); }
// GET: MovieOrders/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(View("Error", new String[] { "Please specify a movie order to view!" })); } MovieOrder movieOrder = await _context.MovieOrders .Include(r => r.Tickets) .ThenInclude(o => o.MovieShowing) .ThenInclude(o => o.Movie) .Include(o => o.Customer) .Include(o => o.Recipient) .ThenInclude(r => r.OrdersReceived) .Where(u => u.Recipient.UserName == User.Identity.Name) .Include(o => o.Tickets) .FirstOrDefaultAsync(m => m.MovieOrderID == id); if (movieOrder == null) { return(View("Error", new String[] { "This order was not found!" })); } return(View(movieOrder)); }
public MovieOrder GetOrderDetails(int id) { MovieOrder order = db.MovieOrders.Find(id); order.OrderDetails = db.OrderDetails.Where(o => o.MovieOrderId == id).ToList(); return(order); }
public async Task <IActionResult> CancelConfirmed(int id, MovieOrder movieOrder) { if (id != movieOrder.MovieOrderID) { return(View("Error", new String[] { "There was a problem cancelling this order. Try again!" })); } if (ModelState.IsValid == false) { return(View(movieOrder)); } //find the record in the database MovieOrder dbmovieOrder = _context.MovieOrders.Where(r => r.MovieOrderID == id) .Include(o => o.Customer) .Include(o => o.Tickets) .FirstOrDefault(); //if code gets this far, update the record try { //update the notes dbmovieOrder.OrderStatus = Status.Cancelled; if (dbmovieOrder.UsingPopcornPoints == true) { dbmovieOrder.PopcornPointsEarned = 0;//100 * dbmovieOrder.Tickets.Count(); dbmovieOrder.UsingPopcornPoints = false; } else { int temp = 0; foreach (Ticket t in dbmovieOrder.Tickets) { temp += Decimal.ToInt32(t.TicketPrice); } dbmovieOrder.PopcornPointsEarned -= temp; } _context.Update(dbmovieOrder); await _context.SaveChangesAsync(); } catch (Exception ex) { return(View("Error", new String[] { "There was an error cancelling this order!", ex.Message })); } finally { Utilities.Email.SendEmail(dbmovieOrder.Customer.Email, $"Your movie order {dbmovieOrder.MovieOrderID} has been cancelled.", "We are sorry you had to cancel! 😢"); if (dbmovieOrder.isGift == true) { Utilities.Email.SendEmail(dbmovieOrder.Recipient.Email, $"Your movie order {dbmovieOrder.MovieOrderID} has been cancelled.", "We are sorry you had to cancel! 😢"); } } return(RedirectToAction("Index", "MovieOrders")); }
// DELETE: api/Orders/5 public void Delete(int id) { MovieOrder m = Ymdb.MovieOrders.FirstOrDefault(m1 => m1.OrderId == id); if (m != null) { Ymdb.MovieOrders.Remove(m); Ymdb.SaveChanges(); } }
public void AddMovieOrder(MovieOrder movieOrder) { //Mapping foreach (var item in movieOrder.Items) { item.Movie = _context.Movies.Find(item.Movie.Id); } AddEntity(movieOrder); }
public Boolean CheckIneligibleDiscounts(MovieOrder movieOrder) { foreach (Ticket t in movieOrder.Tickets) { if (t.MovieShowing.IsSpecial == true) { return(true); } } return(false); }
//Handles later request with filters public IActionResult FilteredCustomers(String SelectedCustomer) { // this only works because each ticket is tied to a seat List <Ticket> seats; var query = from s in _context.Tickets .Include(r => r.MovieOrder) .ThenInclude(o => o.Customer) .Include(r => r.MovieShowing) .ThenInclude(o => o.Movie) select s; if (SelectedCustomer != "" && SelectedCustomer != "All Members") { query = query.Where(s => s.MovieOrder.Customer.Email == SelectedCustomer); } ViewBag.AllCustomers = GetAllCustomers(); seats = query.ToList(); List <Ticket> final = new List <Ticket>(); foreach (Ticket t in seats) { if (t.MovieShowing != null) { if (t.MovieShowing.IsPublished == true) { if (t.MovieOrder.OrderStatus == Status.Past || t.MovieOrder.OrderStatus == Status.Future) { final.Add(t); } } } } Decimal totalRev = 0; var group = final.GroupBy(t => t.MovieOrder.MovieOrderID); foreach (var g in group) { MovieOrder mo = g.ToList().First().MovieOrder; if (mo.UsingPopcornPoints != true) { totalRev += mo.SubTotal; } } seats.RemoveAll(t => t.MovieOrder.OrderStatus == Status.Unfinished); ViewBag.TotalSeats = final.Count(); ViewBag.TotalRevenue = totalRev.ToString("C"); ViewBag.AllMovies = GetAllMovies(); return(View("Customers", seats.OrderBy(s => s.MovieOrder.ConfirmationNumber))); }
public ActionResult ConfirmTransaction(FormCollection fl) { string userLoggedIn = CookieController.GetCookie("userId"); double totalOrderValue = 0; Order o = new Order() { Date = DateTime.Now, UserId = Convert.ToInt32(userLoggedIn), }; db.Orders.Add(o); db.SaveChanges(); if (ModelState.IsValid) { //now to reduce all items from database IList <Cart> carts = (IList <Cart>)db.Carts.SqlQuery("Select * from dbo.Carts where dbo.Carts.UserId = {0}", userLoggedIn).ToList(); foreach (Cart c in carts) { //we need to update MovieOrders,Orders,Cart,Movies //first lets remove from Movies. db.Database.ExecuteSqlCommand("UPDATE dbo.Movies SET Amount = Amount- {0} WHERE MovieId = {1}", c.Count, c.MovieId); var currMoviePrice = db.Movies.SqlQuery("Select * from dbo.Movies where dbo.Movies.MovieId = {0}", c.MovieId).ToList(); totalOrderValue += c.Count * currMoviePrice[0].Price; //now we create new movieOrder for each cart MovieOrder mo = new MovieOrder() { OrderId = o.OrderId, Amount = c.Count, MovieId = c.MovieId }; db.MovieOrders.Add(mo); //now we remove the cart. db.Carts.Remove(c); //now we add to orders //now we add remove from Cart } db.Database.ExecuteSqlCommand("UPDATE dbo.Orders SET TotalAmountValue = TotalAmountValue + {0} WHERE OrderId = {1}", totalOrderValue, o.OrderId); db.SaveChanges(); ViewBag.orderId = o.OrderId; } HttpContext.Application["date"] = null; HttpContext.Application["tempdate"] = null; HttpContext.Application["cameFromSet"] = null; return(RedirectToAction("Index", "Home")); }
public async Task Seed() { _context.Database.EnsureCreated(); var user = await _userManager.FindByEmailAsync("*****@*****.**"); // Checking If user is not created if (user == null) { user = new SaveUser() { FirstName = "Chander", LastName = "Dhall", Email = "*****@*****.**", UserName = "******" }; var result = await _userManager.CreateAsync(user, "Password9!"); if (result != IdentityResult.Success) { throw new Exception("Unable to create user"); } } if (!_context.Movies.Any()) { // Insert new records var path = Path.Combine(_env.ContentRootPath, "Data/movies.json"); var content = File.ReadAllText(path); var movies = JsonConvert.DeserializeObject <IEnumerable <Movie> >(content); _context.Movies.AddRange(movies); var movieOrder = new MovieOrder() { OrderDateTime = DateTime.Now, OrderNumber = "123", User = user, Items = new List <MovieItem>() { new MovieItem() { Movie = movies.Last(), Quantity = 7, Price = movies.Last().Price } } }; _context.MovieOrders.Add(movieOrder); _context.SaveChanges(); } }
// PUT: api/Orders/5 public void Put(int id, [FromBody] string Movie_Name, int NumOftickets, DateTime date, TimeSpan time, string username, string password) { MovieOrder m = Ymdb.MovieOrders.FirstOrDefault(m1 => m1.OrderId == id); if (m != null) { m.MovieName = Movie_Name + "gggg"; m.NumOftickets = NumOftickets; m.Date = date; m.Time = time; m.UserName = username; m.Password = password; Ymdb.SaveChanges(); } }
public MovieOrder CreateOrder() { string orderNum = GenerateOrderNum(); MovieOrder order = new MovieOrder() { OrderDate = DateTime.Now, StatusId = 1, //New by default. OrderNum = orderNum }; db.MovieOrders.Add(order); db.SaveChanges(); return(order); }
public Boolean CheckGiftUnder18(MovieOrder movieOrder) { if (movieOrder.isGift == true) { AppUser giftee = movieOrder.Recipient; foreach (Ticket t in movieOrder.Tickets) { if (t.MovieShowing.Movie.MPAARating == MPAARatings.NC17 || t.MovieShowing.Movie.MPAARating == MPAARatings.R) { if (giftee.Age < 18) { return(true); } } } } return(false); }
public MovieOrder UpdateOrder(MovieOrder order) { var currentItems = db.OrderDetails.Where(d => d.MovieOrderId == order.Id).ToList(); db.OrderDetails.RemoveRange(currentItems); db.SaveChanges(); MovieOrder model = db.MovieOrders.Find(order.Id); model.OrderDesc = order.OrderDesc; model.StatusId = order.StatusId; model.TotalCost = order.OrderDetails.Where(d => d.MovieOrderId == order.Id).Sum(m => m.Qty * m.Movie.Price); model.OrderDetails = order.OrderDetails; db.SaveChanges(); order.TotalCost = model.TotalCost; return(model); }
public ActionResult AddressAndPayment(FormCollection values) { var order = new MovieOrder(); TryUpdateModel(order); try { order.Username = User.Identity.Name; order.OrderDate = DateTime.Now; //Process the order var cart = ShoppingCart.GetCart(HttpContext); cart.CreateOrder(order); return(RedirectToAction("Complete", new { errortype = order.MovieOrderId })); } catch { //Invalid - redisplay with errors return(View(order)); } }
//Return view with filtered totals public IActionResult ReportedTotals(ReportViewModel rvm) { List <Ticket> ticks = _context.Tickets .Include(r => r.MovieOrder) .ThenInclude(o => o.Customer) .Include(r => r.MovieShowing) .ThenInclude(o => o.Movie) .ToList(); List <Ticket> seats = new List <Ticket>(); foreach (Ticket t in ticks) { if (t.MovieShowing != null) { if (t.MovieShowing.IsPublished == true) { if (t.MovieOrder.OrderStatus == Status.Past || t.MovieOrder.OrderStatus == Status.Future) { seats.Add(t); } } } } Decimal totalRev = 0; var group = seats.GroupBy(t => t.MovieOrder.MovieOrderID); foreach (var g in group) { MovieOrder mo = g.ToList().First().MovieOrder; if (mo.UsingPopcornPoints != true) { totalRev += mo.SubTotal; } } rvm.TotalRevenue = totalRev; rvm.SeatsSold = seats.Count(); return(View(rvm)); }
// GET: Tickets/Create public IActionResult Create(int movieOrderID, int?SelectedMovieId) { Ticket t = new Ticket(); //find the registration that should be associated with this registration MovieOrder dbMovieOrder = _context.MovieOrders.Find(movieOrderID); //set the new registration detail's registration equal to the registration you just found t.MovieOrder = dbMovieOrder; if (SelectedMovieId != null && SelectedMovieId != 0) { //populate the ViewBag with a list of existing showings ViewBag.AllShowings = GetAllShowings((int)SelectedMovieId); } else { ViewBag.AllShowings = GetAllShowings(); } //pass the newly created registration detail to the view return(View(t)); }
//NOTE: Non Action Result Methods public Boolean CheckDuplicateMovies(MovieOrder movieOrder) { // Get all unique showings HashSet <MovieShowing> showingSet = new HashSet <MovieShowing>(); foreach (Ticket t in movieOrder.Tickets) { showingSet.Add(t.MovieShowing); } List <MovieShowing> showings = showingSet.ToList(); // Loop through unique showings and find all the movies // for each showing List <String> movies = new List <String>(); foreach (MovieShowing ms in showings) { movies.Add(ms.Movie.Title); } //Get a count of repetitions of each movie var q = from x in movies group x by x into g let count = g.Count() orderby count descending select new { Value = g.Key, Count = count }; // Check for any movie duplicates foreach (var x in q) { if (x.Count > 1) { return(true); } } return(false); }
public async Task <IActionResult> Create(MovieOrder movieOrder, int SelectedMovie, String SelectedCustomer) { if (SelectedCustomer != null) { AppUser customer = _context.Users .Where(t => t.Email == SelectedCustomer) .Include(t => t.MovieOrders) .ThenInclude(t => t.Tickets) .FirstOrDefault(); if (customer == null) { return(View("Error", new String[] { "This customer was not found!" })); } //movieOrder.ConfirmationNumber = Utilities.GetConfirmationNumber.GetNextConfNumber(_context); movieOrder.DateOrdered = DateTime.Now; movieOrder.Customer = customer; if (movieOrder.GiftRecipient != null) { AppUser giftRecipient = _context.Users.FirstOrDefault(u => u.Email == movieOrder.GiftRecipient); List <AppUser> allCustomers = AllCustomers(); if (giftRecipient != default && allCustomers.Contains(giftRecipient)) { movieOrder.Recipient = giftRecipient; movieOrder.isGift = true; } else { ViewBag.GiftError = "Giftee email is not in the database."; ViewBag.AllCustomers = GetAllCustomers(); ViewBag.AllMovies = GetAllMovies(); return(View("SelectCustomer", movieOrder)); } } if (ModelState.IsValid == false) { ViewBag.AllCustomers = GetAllCustomers(); ViewBag.AllMovies = GetAllMovies(); return(View("SelectCustomer", movieOrder)); } _context.Add(movieOrder); await _context.SaveChangesAsync(); } else { //set the value of Confirmation Number //movieOrder.ConfirmationNumber = Utilities.GetConfirmationNumber.GetNextConfNumber(_context); movieOrder.DateOrdered = DateTime.Now; movieOrder.Customer = _context.Users .Include(t => t.MovieOrders) .ThenInclude(t => t.Tickets) .FirstOrDefault(u => u.UserName == User.Identity.Name); if (movieOrder.GiftRecipient != null) { AppUser giftRecipient = _context.Users.FirstOrDefault(u => u.Email == movieOrder.GiftRecipient); List <AppUser> allCustomers = AllCustomers(); if (giftRecipient != default && allCustomers.Contains(giftRecipient)) { movieOrder.Recipient = giftRecipient; movieOrder.isGift = true; } else { ViewBag.GiftError = "Giftee email is not a customer in the database."; ViewBag.AllMovies = GetAllMovies(); return(View(movieOrder)); } } if (ModelState.IsValid == false) { ViewBag.AllMovies = GetAllMovies(); return(View(movieOrder)); } _context.Add(movieOrder); await _context.SaveChangesAsync(); } return(RedirectToAction("Create", "Tickets", new { MovieOrderID = movieOrder.MovieOrderID, SelectedMovieId = SelectedMovie })); }
public async Task <IActionResult> Create(Ticket ticket, int SelectedShowing) { if (SelectedShowing == 0) { return(View("Error", new String[] { "You didn't select a showing." })); } if (ModelState.IsValid == false) { ViewBag.AllShowings = GetAllShowings(); return(View(ticket)); } MovieShowing dbMovieShowing = _context.MovieShowings .Where(ms => ms.IsPublished == true) .Include(ms => ms.Tickets) .ThenInclude(t => t.MovieOrder) .ThenInclude(t => t.Customer) .Include(t => t.Movie) .Where(ms => ms.MovieShowingID == SelectedShowing) .First(); Price dbPrice = _context.Prices.First(); ticket.MovieShowing = dbMovieShowing; Boolean inOrder = false; foreach (Ticket t in ticket.MovieOrder.Tickets) { if (t.Seat == ticket.Seat) { inOrder = true; } } if (ticket.MovieShowing.StartTime < DateTime.Now) { ViewBag.AllShowings = GetAllShowings(ticket.MovieShowing.Movie.MovieId); ViewBag.ErrorMessage = "That showing is in the past."; return(View(ticket)); } if (ticket.ValidSeat() == false || inOrder == true) { ViewBag.AllShowings = GetAllShowings(ticket.MovieShowing.Movie.MovieId); ViewBag.ErrorMessage = "Seat Unavailable."; return(View(ticket)); } MovieOrder dbMovieOrder = _context.MovieOrders .Include(t => t.Tickets) .ThenInclude(t => t.MovieShowing) .Include(t => t.Customer) .Include(t => t.Recipient) .Where(t => t.MovieOrderID == ticket.MovieOrder.MovieOrderID) .FirstOrDefault(); ticket.MovieOrder = dbMovieOrder; /*List<String> contained = new List<String>(); * foreach (Ticket ticket1 in ticket.MovieOrder.Tickets) * { * contained.Add(ticket1.Seat); * } * if (contained.Contains(ticket.Seat)) * { * ViewBag.AllShowings = GetAllShowings(ticket.MovieShowing.Movie.MovieId); * ViewBag.ErrorMessage = "Can't add duplicate seat to order."; * return View(ticket); * }*/ if (CheckConflictingStarts(dbMovieOrder) == true) { ViewBag.AllShowings = GetAllShowings(ticket.MovieShowing.Movie.MovieId); ViewBag.ErrorMessage = "You cannot purchase tickets to movies with conflicting showtimes in one order."; return(View(ticket)); //return View("Error", new String[] { "You cannot purchase tickets to movies with conflicting showtimes in one order." }); } if (ticket.MovieOrder.Customer.Age < 18 && (ticket.MovieShowing.Movie.MPAARating == MPAARatings.NC17 || ticket.MovieShowing.Movie.MPAARating == MPAARatings.R)) { ViewBag.AllSeats = GetAllSeats(SelectedShowing); ViewBag.AllShowings = GetAllShowings(ticket.MovieShowing.Movie.MovieId); ViewBag.ErrorMessage = "You must be at least 18 to purchase tickets to an R or NC-17 showing."; return(View(ticket)); } List <String> MatineeDays = new List <String>() { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" }; List <String> Weekdays = new List <String>() { "Monday", "Tuesday", "Wednesday", "Thursday" }; DateTime start = ticket.MovieShowing.StartTime; TimeSpan noonCutoff = new TimeSpan(12, 0, 0); TimeSpan fiveCutoff = new TimeSpan(17, 0, 0); if (ticket.MovieShowing.IsSpecial == false) { if (MatineeDays.Contains(start.DayOfWeek.ToString()) && start.TimeOfDay < noonCutoff) { ticket.Discount = ("Matinee"); ticket.TicketPrice = dbPrice.MatineePrice; } //Tuesday Price else if (start.DayOfWeek.ToString() == "Tuesday" && start.TimeOfDay >= noonCutoff && start.TimeOfDay < fiveCutoff) { ticket.Discount = ("Discount Tuesday"); ticket.TicketPrice = dbPrice.TuesdayPrice; } //Weekday price else if ((Weekdays.Contains(start.DayOfWeek.ToString()) && start.TimeOfDay >= noonCutoff) || (start.DayOfWeek.ToString() == "Friday" && start.TimeOfDay <= noonCutoff)) { ticket.Discount = ("Weekday Price"); ticket.TicketPrice = dbPrice.WeekdayPrice; } //Weekend price else { ticket.Discount = ("Weekend Price"); ticket.TicketPrice = dbPrice.WeekendPrice; } } else { ticket.Discount = "Special Showing"; ticket.TicketPrice = dbPrice.SpecialPrice; } _context.Add(ticket); await _context.SaveChangesAsync(); return(RedirectToAction("ConfirmOrder", "MovieOrders", new { id = ticket.MovieOrder.MovieOrderID })); }
// Handles Later Request with Filters public IActionResult FilteredTotals(TotalReportFilterViewModel trfvm) { // this only works because each ticket is tied to a seat List <Ticket> seats; var query = from s in _context.Tickets .Include(r => r.MovieOrder) .ThenInclude(o => o.Customer) .Include(r => r.MovieShowing) .ThenInclude(o => o.Movie) select s; //Filter by movie if (trfvm.MovieId != 0) { query = query.Where(s => s.MovieShowing.Movie.MovieId == trfvm.MovieId); } //Filter by MPAA rating if (trfvm.MPAARating != null) { switch (trfvm.MPAARating) { case MPAARatings.G: query = query.Where(s => s.MovieShowing.Movie.MPAARating == MPAARatings.G); break; case MPAARatings.PG: query = query.Where(s => s.MovieShowing.Movie.MPAARating == MPAARatings.PG); break; case MPAARatings.PG13: query = query.Where(s => s.MovieShowing.Movie.MPAARating == MPAARatings.PG13); break; case MPAARatings.NC17: query = query.Where(s => s.MovieShowing.Movie.MPAARating == MPAARatings.NC17); break; case MPAARatings.R: query = query.Where(s => s.MovieShowing.Movie.MPAARating == MPAARatings.R); break; case MPAARatings.Unrated: query = query.Where(s => s.MovieShowing.Movie.MPAARating == MPAARatings.Unrated); break; default: break; } } //Filter by date range //Case where start exists and end is indefinite if (trfvm.DateRangeStart != null || trfvm.DateRangeEnd != null) { switch (trfvm.ChoiceTime) { case DateOrTime.DateRange: /*if (trfvm.DateRangeStart != null && trfvm.DateRangeEnd == null) * { * DateTime start = (DateTime)trfvm.DateRangeStart; * query = query.Where(s => s.MovieShowing.StartTime.Date.AddDays(1) > start.Date); * } * else if (trfvm.DateRangeStart == null && trfvm.DateRangeEnd != null) * { * DateTime end = (DateTime)trfvm.DateRangeEnd; * query = query.Where(s => s.MovieShowing.EndTime.Date < end.Date.AddDays(1)); * } * else if (trfvm.DateRangeStart != null && trfvm.DateRangeEnd != null) * { * DateTime start = (DateTime)trfvm.DateRangeStart; * DateTime end = (DateTime)trfvm.DateRangeEnd; * query = query.Where(s => s.MovieShowing.StartTime.Date.AddDays(1) > start.Date && s.MovieShowing.EndTime.Date < end.Date.AddDays(1)); * }*/ DateTime start = trfvm.DateRangeStart ?? new DateTime(1900, 1, 1); DateTime end = trfvm.DateRangeEnd ?? new DateTime(2200, 1, 1); if (start > end) { ViewBag.ErrorMessage = "Invalid Time Frame"; ViewBag.AllMovies = GetAllMovies(); return(View("Totals", trfvm)); } query = query.Where(mv => mv.MovieShowing.StartTime.Date.AddDays(1) > start.Date).Where(mv => mv.MovieShowing.StartTime.Date < end.Date.AddDays(1)); break; case DateOrTime.TimeOfDay: if (trfvm.DateRangeStart != null && trfvm.DateRangeEnd == null) { DateTime startTime = (DateTime)trfvm.DateRangeStart; query = query.Where(s => s.MovieShowing.StartTime.TimeOfDay >= startTime.TimeOfDay); } else if (trfvm.DateRangeStart == null && trfvm.DateRangeEnd != null) { DateTime endTime = (DateTime)trfvm.DateRangeEnd; query = query.Where(s => s.MovieShowing.EndTime.TimeOfDay <= endTime.TimeOfDay); } else if (trfvm.DateRangeStart != null && trfvm.DateRangeEnd != null) { DateTime startTime = (DateTime)trfvm.DateRangeStart; DateTime endTime = (DateTime)trfvm.DateRangeEnd; if (startTime > endTime) { ViewBag.ErrorMessage = "Invalid Time Frame"; ViewBag.AllMovies = GetAllMovies(); return(View("Totals", trfvm)); } query = query.Where(s => (s.MovieShowing.StartTime.TimeOfDay >= startTime.TimeOfDay) && (s.MovieShowing.EndTime.TimeOfDay <= endTime.TimeOfDay)); } break; default: break; } } List <Ticket> final = new List <Ticket>(); seats = query.ToList(); foreach (Ticket t in seats) { if (t.MovieShowing != null) { if (t.MovieShowing.IsPublished == true) { if (t.MovieOrder.OrderStatus == Status.Past || t.MovieOrder.OrderStatus == Status.Future) { final.Add(t); } } } } Decimal totalRev = 0; var group = final.GroupBy(t => t.MovieOrder.MovieOrderID); foreach (var g in group) { MovieOrder mo = g.ToList().First().MovieOrder; if (mo.UsingPopcornPoints != true) { totalRev += mo.SubTotal; } } ReportViewModel rvm = new ReportViewModel(); rvm.SeatsSold = final.Count(); rvm.TotalRevenue = totalRev; ViewBag.TotalSeats = final.Count(); ViewBag.TotalRevenue = totalRev.ToString("C"); ViewBag.AllMovies = GetAllMovies(); return(View("ReportedTotals", rvm)); }
// PUT: api/Orders/5 public void Put(int id, [FromBody] MovieOrder order) { _ordersRepo.UpdateOrder(order); }
// POST: api/Orders public void Post([FromBody] MovieOrder b1) { Ymdb.MovieOrders.Add(b1); Ymdb.SaveChanges(); }
public async Task <IActionResult> Edit(int id, MovieOrder movieOrder) { if (id != movieOrder.MovieOrderID) { return(View("Error", new String[] { "There was a problem editing this order. Try again!" })); } if (ModelState.IsValid == false) { return(View(movieOrder)); } MovieOrder dbMovieOrder = _context.MovieOrders.Include(r => r.Tickets) .Include(o => o.Customer) .ThenInclude(o => o.MovieOrders) .ThenInclude(o => o.Tickets) .ThenInclude(o => o.MovieShowing) .Include(o => o.Recipient) .Include(o => o.Tickets) .ThenInclude(o => o.MovieShowing) .ThenInclude(o => o.Movie) .FirstOrDefault(m => m.MovieOrderID == id); int req = dbMovieOrder.Tickets.Count() * 100; int points = dbMovieOrder.Customer.TotalPopcornPoints; if (movieOrder.UsingPopcornPoints == true) { if (req > points) { return(View("Error", new string[] { "You don't have enough popcorn points to pay for this order." })); } } foreach (Ticket t in movieOrder.Tickets) { if ((t.MovieShowing.Movie.MPAARating == MPAARatings.R || t.MovieShowing.Movie.MPAARating == MPAARatings.NC17) && movieOrder.Customer.Age < 18) { return(View("Error", new string[] { "You must be at least 18 to purchase tickets to an R or NC-17 showing." })); } } if (CheckGiftUnder18(movieOrder) == true) { return(View("Error", new string[] { "You cannot purchase" + "these tickets for a customer under 18." })); } if (CheckConflictingStarts(movieOrder) == true) { return(View("Error", new String[] { "You cannot purchase tickets to movies with conflicting showtimes in one order." })); } if (CheckDuplicateMovies(movieOrder) == true) { return(View("Error", new string[] { "You cannot purchase tickets to more than " + "one showing of the same movie in a single order." })); } //if code gets this far, update the record try { //find the record in the database MovieOrder dbmovieOrder = _context.MovieOrders.Find(movieOrder.MovieOrderID); //update the notes dbmovieOrder.UsingPopcornPoints = movieOrder.UsingPopcornPoints; _context.Update(dbmovieOrder); await _context.SaveChangesAsync(); } catch (Exception ex) { return(View("Error", new String[] { "There was an error updating this order!", ex.Message })); } //send the user to the Confirmation page. return(RedirectToAction("ConfirmOrder", new { id = movieOrder.MovieOrderID })); }