public async Task <IActionResult> Create(DonatedTicketsCreateViewModel dtcvm) { ModelState.Remove("DonatedTickets.UserId"); ModelState.Remove("DonatedTickets.User"); ModelState.Remove("DonatedTickets.PredsGame"); for (int i = 0; i < dtcvm.Tickets.Count; i++) { ModelState.Remove($"Tickets[{i}].DonatedTickets"); } if (ModelState.IsValid) { var user = await _userManager.GetUserAsync(HttpContext.User); dtcvm.DonatedTickets.User = user; dtcvm.DonatedTickets.UserId = user.Id; _context.Add(dtcvm.DonatedTickets); await _context.SaveChangesAsync(); foreach (var ticket in dtcvm.Tickets) { ticket.DonatedTicketsId = dtcvm.DonatedTickets.DonatedTicketsId; _context.Add(ticket); } await _context.SaveChangesAsync(); emailSecret = Configuration["EmailSecrets:Email"]; password = Configuration["EmailSecrets:Password"]; EmailSettings es = new EmailSettings() { PrimaryDomain = "smtp.gmail.com", PrimaryPort = 587, SecondayDomain = "smtp.gmail.com", SecondaryPort = 587, UsernameEmail = emailSecret, UsernamePassword = password, FromEmail = "*****@*****.**", ToEmail = user.Email }; string email = user.Email; string title = "7Element Donation"; string body = $"<h2>Dear {user.FirstName} {user.LastName},</h2><br>" + $"<p>This email is to confirm your desired donation to for the following {dtcvm.NumberOfTickets} tickets:</p><br><ol>"; for (int i = 0; i < dtcvm.Tickets.Count; i++) { body += $"<li>Section {dtcvm.Tickets[i].Section} Row {dtcvm.Tickets[i].Row} Seat {dtcvm.Tickets[i].Seat}</li>"; } body += "</ol><p>To complete your donation please dontate the tickets to tickemaster with the username [email protected].</p><br>" + "<h3>Thank you,</h3>" + "<h2>7Element</h2>"; AuthMessageSender ams = new AuthMessageSender(Options.Create(es)); await ams.SendEmailAsync(email, title, body); return(RedirectToAction(nameof(Confirmation))); } ViewData["PredsGameId"] = new SelectList(_context.PredsGame, "PredsGameId", "PredsGameId", dtcvm.DonatedTickets.PredsGameId); return(View()); }
// GET: DonatedTickets/Create public async Task <IActionResult> Create() { DateTime date = DateTime.Now.AddDays(7); var currentDateTime = DateTime.Now; var predsGames = await _context.PredsGame.Where(pg => pg.DateTime > currentDateTime && pg.DateTime < date && pg.Open == true).ToListAsync(); List <SelectListItem> Positions = new List <SelectListItem>(); foreach (var pg in predsGames) { Positions.Add(new SelectListItem() { Text = ($"{pg.DateTime} {pg.Opponent}"), Value = pg.PredsGameId.ToString() }); } ViewData["PredsGameId"] = Positions; List <SelectListItem> NumberOfTickets = new List <SelectListItem>() { new SelectListItem() { Text = "2", Value = "2" }, new SelectListItem() { Text = "3", Value = "3" }, new SelectListItem() { Text = "4", Value = "4" }, new SelectListItem() { Text = "5", Value = "5" }, new SelectListItem() { Text = "6", Value = "6" }, new SelectListItem() { Text = "7", Value = "7" }, new SelectListItem() { Text = "8", Value = "8" }, new SelectListItem() { Text = "9", Value = "9" }, new SelectListItem() { Text = "10", Value = "10" } }; ViewData["NumberOfTickets"] = NumberOfTickets; var user = await _userManager.GetUserAsync(HttpContext.User); DonatedTicketsCreateViewModel dtcvm = new DonatedTicketsCreateViewModel() { user = user }; return(View(dtcvm)); }