Exemplo n.º 1
0
        public async Task InitializeData()
        {
            _context.Database.EnsureDeleted();
            if (_context.Database.EnsureCreated())
            {
                // Oefeningen
                var oefening1 = new Oefening("opgave1", 100);
                var oefening2 = new Oefening("opgave2", 200);
                var oefening3 = new Oefening("opgave3", 300);

                // GroepsBewerkingen
                var groepsBewerking1 = new GroepsBewerking("Vermenigvuldig bovenstaande met 3", 3, Operator.vermeningvuldigen);
                var groepsBewerking2 = new GroepsBewerking("Trek hier 4 van af.", 4, Operator.aftrekken);
                var groepsBewerking3 = new GroepsBewerking("Deel door 3", 3, Operator.delen);

                // Opdrachten
                var opdracht1  = new Opdracht("code1", oefening1, groepsBewerking1);
                var opdracht2  = new Opdracht("code2", oefening2, groepsBewerking2);
                var opdracht3  = new Opdracht("code3", oefening3, groepsBewerking3);
                var opdrachten = new List <Opdracht> {
                    opdracht1, opdracht2, opdracht3
                };
                _context.Opdrachten.AddRange(opdrachten);

                // Acties
                var actie1 = new Actie("Ga naar de McDonalds en koop McNuggets");
                var actie2 = new Actie("Ga naar Gebouw B");
                var actie3 = new Actie("Neem de groene ballon");
                var acties = new List <Actie> {
                    actie1, actie2, actie3
                };
                _context.Acties.AddRange(acties);

                // Pad
                var pad = new Pad();
                pad.AddOpdracht(opdracht1, 1);
                pad.AddOpdracht(opdracht2, 2);
                pad.AddOpdracht(opdracht3, 3);
                pad.AddActie(actie1, 1);
                pad.AddActie(actie2, 2);
                pad.AddActie(actie3, 3);
                var pad2 = new Pad();
                pad2.AddOpdracht(opdracht1, 1);
                pad2.AddOpdracht(opdracht2, 3);
                pad2.AddOpdracht(opdracht3, 2);
                pad2.AddActie(actie1, 1);
                pad2.AddActie(actie2, 3);
                pad2.AddActie(actie3, 2);
                var pad3 = new Pad();
                pad3.AddOpdracht(opdracht1, 2);
                pad3.AddOpdracht(opdracht2, 1);
                pad3.AddOpdracht(opdracht3, 3);
                pad3.AddActie(actie1, 2);
                pad3.AddActie(actie2, 1);
                pad3.AddActie(actie3, 3);
                var pad4 = new Pad();
                pad4.AddOpdracht(opdracht1, 3);
                pad4.AddOpdracht(opdracht2, 2);
                pad4.AddOpdracht(opdracht3, 1);
                pad4.AddActie(actie1, 3);
                pad4.AddActie(actie2, 2);
                pad4.AddActie(actie3, 1);
                var paden = new List <Pad> {
                    pad, pad2, pad3, pad4
                };
                foreach (var item in paden)
                {
                    item.PadState = new OpdrachtPadState();
                }
                _context.Paden.AddRange(paden);

                // Klas
                var klas  = new Klas("2A1");
                var klas2 = new Klas("2TILE");


                Leerling[] leerlingen1 =
                {
                    new Leerling("Halpert",  "Jim"),
                    new Leerling("Beesley",  "Pam"),
                    new Leerling("Schrute",  "Dwight"),
                    new Leerling("Howard",   "Ryan"),
                    new Leerling("Drets",    "Michel"),
                    new Leerling("Loosveld", "Franky", "*****@*****.**")
                };

                foreach (var leerling in leerlingen1)
                {
                    klas.Leerlingen.Add(leerling);
                }
                klas2.Leerlingen.Add(new Leerling("LaPlace", "Bucky", "*****@*****.**"));

                // Groep
                var groep = new Groep("Het Eiland")
                {
                    Pad = pad
                };
                var groep2 = new Groep("The Office")
                {
                    Pad = pad2
                };
                var groep3 = new Groep("Plaats 1")
                {
                    Pad = pad3
                };
                var groep4 = new Groep("Plaats 2")
                {
                    Pad = pad4
                };

                for (int i = 0; i < 4; i++)
                {
                    groep2.Leerlingen.Add(leerlingen1[i]);
                }

                for (int i = 4; i < leerlingen1.Length - 1; i++)
                {
                    groep.Leerlingen.Add(leerlingen1[i]);
                }


                Groep[] groepen = { groep, groep2, groep3, groep4 };

                _context.Groepen.AddRange(groepen);
                _context.SaveChanges();


                // Sessie
                var sessie = new Sessie(123, "Hoofdrekenen", "Enkel een pen en papier dienen gebruikt te worden", new List <Groep> {
                    groep, groep2
                }, klas);
                var sessie2 = new Sessie(321, "Brugcursus Wiskunde", "Enkel een pen en papier dienen gebruikt te worden", new List <Groep> {
                    groep3, groep4
                }, klas2)
                {
                    Doelgroep = DoelgroepEnum.Volwassenen
                };
                Sessie[] sessies = { sessie, sessie2 };

                _context.Sessies.AddRange(sessies);
                _context.SaveChanges();

                // Leerkracht + user account
                var leerkracht = new Leerkracht("Protut", "Lydia", "*****@*****.**")
                {
                    Sessies = new List <Sessie> {
                        sessie, sessie2
                    }
                };
                _context.Leerkrachten.Add(leerkracht);
                ApplicationUser user = new ApplicationUser {
                    UserName = "******", Email = "*****@*****.**"
                };
                await _userManager.CreateAsync(user, "P@ssword1");

                await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "Leerkracht"));

                // Leerling user account
                user = new ApplicationUser {
                    UserName = "******", Email = "*****@*****.**"
                };
                await _userManager.CreateAsync(user, "P@ssword1");

                await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "Leerling"));

                user = new ApplicationUser {
                    UserName = "******", Email = "*****@*****.**"
                };
                await _userManager.CreateAsync(user, "P@ssword1");

                await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "Leerling"));

                _context.SaveChanges();
            }
            _context.SaveChanges();
        }
        public DummyApplicationDbContext()
        {
            Oef1             = new Oefening("Opgave oefening 1", 100);
            GroepsBewerking1 = new GroepsBewerking("Doe de groepsbewerking1", 2, Operator.aftrekken);

            Opdracht1 = new Opdracht("toegangsCode123", Oef1, GroepsBewerking1);


            Oef2             = new Oefening("Opgave oefening 2", 210);
            GroepsBewerking2 = new GroepsBewerking("Doe de groepsbewerking2", 3, Operator.delen);

            Opdracht2 = new Opdracht("toegangsCode678", Oef2, GroepsBewerking2);

            Opdrachten = new[] { Opdracht1, Opdracht2 };

            Actie1 = new Actie("Actie1");
            Actie2 = new Actie("Actie2");
            Acties = new[] { Actie1, Actie2 };

            Pad = new Pad()
            {
                PadId = 1
            };
            Pad.AddOpdracht(Opdracht1, 1);
            Pad.AddOpdracht(Opdracht2, 2);
            Pad.AddActie(Actie1, 1);
            Pad.AddActie(Actie2, 2);
            Pad.PadState    = new OpdrachtPadState();
            PadMet1Opdracht = new Pad()
            {
                PadId = 5
            };
            PadMet1Opdracht.AddOpdracht(Opdracht1, 1);
            PadMet1Opdracht.AddActie(Actie1, 1);
            PadMet1Opdracht.PadState = new OpdrachtPadState();
            PadGeblokkeerd           = new Pad()
            {
                PadId = 2
            };
            PadGeblokkeerd.AddOpdracht(Opdracht1, 1);
            PadGeblokkeerd.AddOpdracht(Opdracht2, 2);
            PadGeblokkeerd.PadState = new GeblokkeerdPadState();


            Groep1 = new Groep("Groep1")
            {
                GroepId = 1, Pad = Pad, DeelnameBevestigd = true
            };
            Groep2 = new Groep("Groep2")
            {
                GroepId = 2, Pad = PadGeblokkeerd, DeelnameBevestigd = false
            };
            Leerling1 = new Leerling("McDerp", "Derp");
            Leerling2 = new Leerling("Cena", "John");
            Leerling3 = new Leerling("Flib", "Flub")
            {
                LeerlingId = 3
            };
            Klas1 = new Klas("Klas1", new List <Leerling> {
                Leerling1, Leerling2
            });
            Klas2 = new Klas("Klas2", new List <Leerling> {
                Leerling3
            });
            SessieAlleDeelnamesBevestigd = new Sessie(123, "Sessie1", "Dit is sessie1", new List <Groep> {
                Groep1
            }, Klas1);
            SessieNogDeelnamesTeBevestigen = new Sessie(321, "Sessie2", "Dit is sessie2", new List <Groep> {
                Groep2
            }, Klas2);
            Leerkracht1 = new Leerkracht("VanDam", "Alain", "*****@*****.**")
            {
                Sessies = new List <Sessie> {
                    SessieAlleDeelnamesBevestigd
                }
            };
        }