public IActionResult ApproveTradeResponseByOwnerConfirmation(int id)
        {
            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]"));
            }
            TradeResponse response = editie.GetTradeResponseById(id);

            if (response != null)
            {
                try
                {
                    response.Offer.ApproveResponse(response.Id);
                    _editieRepository.SaveChanges();
                    NotifyTradeResponseApproved(response);
                    TempData["message"] = $"U heeft succesvol de reactie van {response.Vereniging.GroepNaam} goedgekeurd!";
                }
                catch (Exception ex)
                {
                    TempData["error"] = $"Er ging iets mis: {ex.Message}";
                }
            }
            return(RedirectToAction(nameof(Doorverkoop)));
        }
        //id = responseId
        public IActionResult DeclineTradeResponse(int id)
        {
            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]"));
            }
            TradeResponse response = editie.GetTradeResponseById(id);

            return(View(response));
        }
        //id = responseId
        public IActionResult CloseTrade(int id)
        {
            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]"));
            }
            TradeResponse response = editie.GetTradeResponseById(id);

            if (response == null)
            {
                TempData["error"] = "Oeps er ging iets mis... Deze reactie bestaat niet meer :(";
                return(RedirectToAction(nameof(Doorverkoop)));
            }
            return(View(new CloseTradeModel(editie, response)));
        }
        public IActionResult DeclineTradeResponseConfirmation(int id)
        {
            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]"));
            }
            TradeResponse response = editie.GetTradeResponseById(id);

            if (response != null)
            {
                response.Status = TradeResponse.OfferStatusType.Declined;
                _editieRepository.SaveChanges();
            }
            return(RedirectToAction(nameof(Doorverkoop)));
        }
        public IActionResult RemoveTradeResponse(Vereniging vereniging, int responseId)
        {
            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]"));
            }
            TradeResponse response = editie.GetTradeResponseById(responseId);

            if (response != null && response.Vereniging.GroepId == vereniging.GroepId)
            {
                response.Offer.Responses.Remove(response);
                _editieRepository.SaveChanges();
                TempData["message"] = "U heeft succesvol uw reactie verwijderd!";
            }
            return(RedirectToAction(nameof(Doorverkoop)));
        }
        [HttpPost]  //id = offerId
        public IActionResult CloseTrade(int id, int responseId)
        {
            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]"));
            }
            try
            {
                TradeResponse response = editie.GetTradeResponseById(responseId);
                editie.CloseTrade(id, responseId, false);
                TempData["message"] = $"U heeft succesvol {response.Amount} tickets van {response.Offer.Owner.GroepNaam} overgekocht!";
                _editieRepository.RemoveTradeOffer(id);
                _editieRepository.SaveChanges();
            }
            catch (Exception ex)
            {
                TempData["error"] = $"Oeps er liep iets fout... {ex.Message}";
            }
            return(RedirectToAction(nameof(Doorverkoop)));
        }