public IActionResult TicketBuy(int EventId, string BuyerName) { TempData["Message"] = ""; if (ModelState.IsValid) { using (var db = new dbInterviewContext()) { bool IsBuy = db.Buyer.Any(p => p.EventId == EventId); if (!IsBuy) { Event _event = db.Event.FirstOrDefault(p => p.EventId == EventId); if (_event != null) { Buyer buyer = new Buyer() { EventId = EventId, BuyerName = BuyerName, TesterKey = "ak" }; db.Buyer.Add(buyer); db.SaveChanges(); } TempData["Message"] = "Ticket Bought"; } else { TempData["Message"] = "Too late!"; } } } return(RedirectToAction("TicketBuy", EventId)); }
public IActionResult Index() { using (var db = new dbInterviewContext()) { List <Event> events = db.Event.Where(p => p.Buyer.FirstOrDefault() == null).ToList(); ViewBag.Message = TempData["Message"]; TempData["Message"] = ""; return(View(events)); } }
public async Task Get() { Response.Headers.Add("Content-Type", "text/event-stream"); Microsoft.AspNetCore.Http.Headers.RequestHeaders headers = Request.GetTypedHeaders(); bool returnEmpty = true; if (headers.Referer.OriginalString.Contains("TicketBuy", StringComparison.InvariantCultureIgnoreCase)) { int eventId = 0; if (Int32.TryParse(headers.Referer.Segments[headers.Referer.Segments.Length - 1], out eventId)) { if (eventId > 0) { bool isTicketBooked = false; using (var db = new dbInterviewContext()) { for (int i = 0; i < 4; i++) { await Task.Delay(TimeSpan.FromSeconds(2)); bool IsBuy = db.Buyer.Any(p => p.EventId == eventId); if (IsBuy == true) { //ticket booked returnEmpty = false; string dataItem = $"data: {"TICKET_BOOKED"}\n\n"; byte[] dataItemBytes = ASCIIEncoding.ASCII.GetBytes(dataItem); await Response.Body.WriteAsync(dataItemBytes, 0, dataItemBytes.Length); await Response.Body.FlushAsync(); break; } } } } } } if (returnEmpty) { string dataItem = $"data: {""}\n\n"; byte[] dataItemBytes = ASCIIEncoding.ASCII.GetBytes(dataItem); await Response.Body.WriteAsync(dataItemBytes, 0, dataItemBytes.Length); await Response.Body.FlushAsync(); } }
public IActionResult TicketBuy(int Id) { if (Id > 0) { using (var db = new dbInterviewContext()) { EventViewModel eventViewModel = db.Event.Where(p => p.EventId == Id).Select(p => new EventViewModel() { EventId = p.EventId, TimeoutInSeconds = p.TimeoutInSeconds, IsTickedAlreadyBought = p.Buyer.FirstOrDefault() == null ? false : true }).FirstOrDefault(); ViewBag.Message = TempData["Message"]; TempData["Message"] = ""; if (eventViewModel != null) { return(View(eventViewModel)); } } } return(RedirectToAction("Index")); }
public EventRepository(dbInterviewContext _context) { context = _context; }
public BuyerRepository(dbInterviewContext _context, IEventRepository eventRepository) { context = _context; _EventRepository = eventRepository; }