public async Task <IActionResult> AddPurchasedEvents([Bind("EventId,UserId")] PurchasedEvents purchasedEvents)
        {
            var aUser = await _context.PurchasedEvents.FirstOrDefaultAsync(u => u.EventId == purchasedEvents.EventId && u.UserId == purchasedEvents.UserId);

            // if valid

            if (aUser is null)
            {
                if (ModelState.IsValid)
                {
                    _context.Add(purchasedEvents);
                    await _context.SaveChangesAsync();

                    TempData["success"] = "Purchase successfull";
                    return(RedirectToAction("Search", "Restrict", new { area = "Users" }));
                }
            }
            else
            {
                TempData["message"] = "You have already Purchased this event";
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EventId"] = new SelectList(_context.Events, "EventId", "EventCity", purchasedEvents.EventId);
            ViewData["UserId"]  = new SelectList(_context.Users, "UserId", "EmailId", purchasedEvents.UserId);
            return(View(purchasedEvents));
        }
        public async Task <IActionResult> Edit(int id, [Bind("EventId,UserId")] PurchasedEvents purchasedEvents)
        {
            if (id != purchasedEvents.EventId)
            {
                return(RedirectToAction(nameof(Index)));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(purchasedEvents);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PurchasedEventsExists(purchasedEvents.EventId))
                    {
                        return(RedirectToAction(nameof(Index)));
                    }
                    else
                    {
                        return(RedirectToAction(nameof(Index)));
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EventId"] = new SelectList(_context.Events, "EventId", "EventCity", purchasedEvents.EventId);
            ViewData["UserId"]  = new SelectList(_context.Users, "UserId", "EmailId", purchasedEvents.UserId);
            return(View(purchasedEvents));
        }
        public async Task <IActionResult> Create([Bind("EventId,UserId")] PurchasedEvents purchasedEvents)
        {
            int userPK = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Sid).Value);
            var aUser  = await _context.PurchasedEvents.FirstOrDefaultAsync(u => u.EventId == purchasedEvents.EventId && u.UserId == userPK);

            purchasedEvents.UserId = userPK;
            // if valid

            if (aUser is null)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        _context.Add(purchasedEvents);
                        await _context.SaveChangesAsync();

                        TempData["success"] = "Purchase successfull";
                    }
                    catch
                    {
                        TempData["message"] = "Purchase failed";
                        return(RedirectToAction(nameof(Index)));
                    }
                    TempData["success"] = "Purchase successfull";
                    return(RedirectToAction(nameof(Index)));
                }
            }
            else
            {
                TempData["message"] = "You have already Purchased this event";
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["EventId"] = new SelectList(_context.Events, "EventId", "EventCity", purchasedEvents.EventId);
            ViewData["UserId"]  = new SelectList(_context.Users, "UserId", "EmailId", purchasedEvents.UserId);
            return(View(purchasedEvents));
        }