public IActionResult StartNextEditieStatus(int id)
        {
            McEditie editie = _editieRepository.GetById(id);

            if (editie == null)
            {
                return(NotFound());
            }
            try
            {
                if (editie.Status == McEditie.McEditieStatusType.Verkoop)
                {
                    editie.StartDoorverkoop();
                }
                else
                {
                    editie.StartDownload();
                }
                _editieRepository.SaveChanges();
            } catch (Exception ex)
            {
                TempData["error"] = $"Something went wrong: {ex.Message}";
            }
            return(RedirectToAction(nameof(Edit), new { id }));
        }
        public async Task InitializeData()
        {
            _dbContext.Database.EnsureDeleted();
            if (_dbContext.Database.EnsureCreated())
            {
                await InitializeUsers();

                /*
                 * var konventen = new List<Konvent>
                 * {
                 *  new Konvent("Home Konvent"),
                 *  new Konvent("Faculteiten Konvent"),
                 *  new Konvent("Senioren Konvent")
                 * };
                 * _dbContext.Konventen.AddRange(konventen);
                 * _dbContext.SaveChanges();
                 */

                //Konventen en verenigingen

                Konvent k1 = new Konvent("Konvent 1", new List <Kleur>()
                {
                    new Kleur("Bruin", "#6E2C00"), new Kleur("Zwart", "#000000")
                });
                Konvent k2           = new Konvent("Konvent 2");
                var     verenigingen = new List <Vereniging>
                {
                    new Vereniging("*****@*****.**", "Vereniging 1", "*****@*****.**", "BE32123456789002", new List <Kleur>()
                    {
                        new Kleur("Blauw", "#3498DB"), new Kleur("Wit", "#FFFFFF")
                    }, k2),
                    new Vereniging("*****@*****.**", "Vereniging 2", "*****@*****.**", "BE32123456789002", new List <Kleur>()
                    {
                        new Kleur("Geel", "#F4D03F"), new Kleur("Zwart", "#000000"), new Kleur("Paars", "#6a0dad")
                    }, k1),
                    new Vereniging("*****@*****.**", "Vereniging 3", "*****@*****.**", "BE32123456789002", new List <Kleur>()
                    {
                        new Kleur("Blauw", "#3498DB"), new Kleur("Paars", "#A569BD"), new Kleur("Groen", "#52BE80")
                    }, k2, true),
                    new Vereniging("*****@*****.**", "Vereniging 4", "*****@*****.**", "BE32123456789002"),
                    new Vereniging("*****@*****.**", "Vereniging 5", "*****@*****.**", "BE32123456789002", new List <Kleur>()
                    {
                        new Kleur("Zwart", "#000000"), new Kleur("Wit", "#FFFFFF")
                    }, k1),
                    new Vereniging("*****@*****.**", "Vereniging 6", "*****@*****.**", "BE32123456789002", new List <Kleur>()
                    {
                        new Kleur("Groen", "#52BE80"), new Kleur("Oranje", "#F5B041"), new Kleur("Wit", "#FFFFFF")
                    }, k2)
                };
                _dbContext.Verenigingen.AddRange(verenigingen);

                Konvent k3 = new Konvent("Konvent 3");
                _dbContext.Konventen.Add(k3);

                //Editie binnen 20dagen en 30 dagen voor opvulling
                McEditie      editie20 = new McEditie("Editie XXX", DateTime.Now.AddDays(20), DateTime.Now.AddDays(20).AddHours(5), "Expo Hallen", 20, 25, 100);
                Verkoopmoment vm1      = new Verkoopmoment(editie20, DateTime.Now.AddDays(14), DateTime.Now.AddDays(15), 25, 45);
                Verkoopmoment vm2      = new Verkoopmoment(editie20, DateTime.Now.AddDays(16), DateTime.Now.AddDays(17), 25, 45);
                _dbContext.McEdities.Add(editie20);
                McEditie      editie30 = new McEditie("Editie XXXI", DateTime.Now.AddDays(30), DateTime.Now.AddDays(30).AddHours(5), "Expo Hallen", 20, 25, 100);
                Verkoopmoment vm3      = new Verkoopmoment(editie30, DateTime.Now.AddDays(24), DateTime.Now.AddDays(25), 25, 45);
                Verkoopmoment vm4      = new Verkoopmoment(editie30, DateTime.Now.AddDays(26), DateTime.Now.AddDays(27), 25, 45);
                _dbContext.McEdities.Add(editie30);

                //TEST EDITIE - parameters aanpassen, tijd uitgedrukt in MINUTEN
                const int aantalVM             = 2;
                const int lengteVM             = 2;
                const int tijdTussenVM         = 0; //0 voor geen pauze tussen
                const int tijdTussenVMenEditie = 180;
                const int tijdTotEersteVM      = -15;
                const int lengteEditie         = 120;
                const int maxTickets           = 2000;
                const int kostPerMedewerker    = 25;
                const int ticketPrijs          = 20;

                //hier niet meer aankomen
                const int tijdTotMC  = tijdTotEersteVM + (aantalVM * lengteVM) + ((aantalVM - 1) * tijdTussenVM) + tijdTussenVMenEditie;
                McEditie  testEditie = new McEditie("Testeditie", DateTime.Now.AddMinutes(tijdTotMC), DateTime.Now.AddMinutes(tijdTotMC + lengteEditie), "Expo Hallen", ticketPrijs, kostPerMedewerker, maxTickets, false);
                var       vms        = new List <Verkoopmoment>();
                for (int i = 0; i < aantalVM; i++)
                {
                    int           startVM = tijdTotEersteVM + (i * (lengteVM + tijdTussenVM));
                    Verkoopmoment vm      = new Verkoopmoment(testEditie, DateTime.Now.AddMinutes(startVM), DateTime.Now.AddMinutes(startVM + lengteVM), 25, 45);
                    vms.Add(vm);
                }
                _dbContext.McEdities.Add(testEditie);
                _dbContext.SaveChanges();

                foreach (Vereniging v in verenigingen)
                {
                    await CreateUser(v.Email, v.Email, "P@ssword1", "vereniging");
                }

                _dbContext.SaveChanges();
                Vereniging v2 = _dbContext.Verenigingen.Where(v => v.GroepNaam == "Vereniging 2").SingleOrDefault();
                Vereniging v3 = _dbContext.Verenigingen.Where(v => v.GroepNaam == "Vereniging 3").SingleOrDefault();
                Vereniging v4 = _dbContext.Verenigingen.Where(v => v.GroepNaam == "Vereniging 4").SingleOrDefault();
                v2.IsGroot = true;
                var b1 = new Bestelling(vms[0], v2, 45);
                vms[0].Bestellingen.Add(b1);
                b1.IsBetaald = true;
                var b2 = new Bestelling(vms[0], v3, 10);
                vms[0].Bestellingen.Add(b2);
                b2.IsBetaald = true;
                vms[1].Bestellingen.Add(new Bestelling(vms[1], v2, 45));
                vms[1].Bestellingen.Add(new Bestelling(vms[1], v4, 5));
                var b3 = new Bestelling(vms[1], v3, 10);
                vms[1].Bestellingen.Add(b3);
                b3.IsBetaald = true;

                TradeOffer offer1 = testEditie.PlaceTradeOffer(v2, 4);
                TradeOffer offer2 = testEditie.PlaceTradeOffer(v4, 3);
                offer1.AddResponse(v3, 3);
                offer1.AddResponse(v4, 4);
                offer2.AddResponse(v2, 2);

                testEditie.StartDoorverkoop();
                testEditie.StartDownload();
                _dbContext.SaveChanges();
            }
        }