public IActionResult PlaceTradeResponse(PlaceTradeResponseModel rm, Vereniging vereniging)
        {
            McEditie editie = _editieRepository.GetNextOrCurrentEditieIncludeTrades();

            if (editie == null)
            {
                return(NotFound("Er is nog geen opkomende editie aangemaakt, als dit volgens u niet klopt, gelieve dan contact op te nemen met [email protected]"));
            }
            if (ModelState.IsValid)
            {
                try
                {
                    TradeOffer offer = editie.GetTradeOfferById(rm.OfferId);
                    if (offer == null)
                    {
                        TempData["error"] = "Oeps er ging iets mis! Deze aanbieding bestaat niet meer!";
                        return(View(nameof(Doorverkoop), new TicketsDoorverkoopViewModel(editie, vereniging)));
                    }
                    offer.AddResponse(vereniging, rm.Amount);
                    _editieRepository.SaveChanges();
                    TempData["message"] = "U heeft succesvol een reactie geplaatst";
                }
                catch (Exception ex)
                {
                    TempData["error"] = $"Oeps! Er ging iets mis: {ex.Message}";
                }
                return(RedirectToAction(nameof(Doorverkoop)));
            }
            return(RedirectToAction(nameof(PlaceTradeResponse), new { id = rm.OfferId }));
        }
        [AcceptVerbs("Get", "Post")]    //REMOTE
        public IActionResult CheckTicketsAsked(int amount, int offerId)
        {
            McEditie editie = _editieRepository.GetNextOrCurrentEditieIncludeTrades() ?? _editieRepository.GetLastIncludeBestellingenAndTrades();

            if (editie == null)
            {
                return(Json("Er ging iets mis... Gelieve de pagina te herladen"));
            }
            TradeOffer offer = editie.GetTradeOfferById(offerId);

            if (offer == null)
            {
                return(Json("Er ging iets mis... Gelieve de pagina te herladen"));
            }
            if (offer.Amount < amount)
            {
                return(Json($"U kan maximaal {offer.Amount} tickets vragen"));
            }
            return(Json(true));
        }
        //id = id van TradeOffer waarop response geplaatst wordt
        public IActionResult PlaceTradeResponse(int id, Vereniging vereniging)
        {
            McEditie editie = _editieRepository.GetNextOrCurrentEditieIncludeTrades();

            if (editie == null)
            {
                return(NotFound("Er is nog geen opkomende editie aangemaakt, als dit volgens u niet klopt, gelieve dan contact op te nemen met [email protected]"));
            }
            TradeOffer offer = editie.GetTradeOfferById(id);

            if (offer == null)
            {
                TempData["error"] = "Oeps er ging iets mis! Deze aanbieding bestaat niet meer!";
                return(View(nameof(Doorverkoop), new TicketsDoorverkoopViewModel(editie, vereniging)));
            }
            if (offer.Responses.SingleOrDefault(r => r.Vereniging.GroepId == vereniging.GroepId) != null)
            {
                TempData["error"] = "U heeft reeds een aanbieding geplaatst op deze aanbieding!";
                return(View(nameof(Doorverkoop), new TicketsDoorverkoopViewModel(editie, vereniging)));
            }
            return(View(new PlaceTradeResponseModel(offer)));
        }
        public IActionResult RemoveTradeOffer(Vereniging vereniging, int offerId)
        {
            McEditie editie = _editieRepository.GetNextOrCurrentEditieIncludeTrades() ?? _editieRepository.GetLastIncludeBestellingenAndTrades();

            if (editie == null)
            {
                return(NotFound("Er zijn nog geen edities aangemaakt, als dit volgens u niet klopt, gelieve dan contact op te nemen met [email protected]"));
            }
            TradeOffer offer = editie.GetTradeOfferById(offerId);

            if (offer == null)
            {
                TempData["error"] = "Oeps er ging iets mis! Deze aanbieding bestaat niet!";
                return(RedirectToAction(nameof(Doorverkoop)));
            }
            if (offer.Owner.GroepId != vereniging.GroepId)
            {
                TempData["redError"] = "Kan geen aanbieding verwijderen dat niet van uzelf is...";
                return(RedirectToAction(nameof(Doorverkoop)));
            }
            editie.TradeOffers.Remove(offer);
            _editieRepository.SaveChanges();
            return(RedirectToAction(nameof(Doorverkoop)));
        }