예제 #1
0
 private static void InjiserOrdre(string epost, Stopp startStopp, Stopp sluttStopp, Ruter rute, Billettyper billettype, int antall, BussContext context)
 {
     for (int i = 0; i < antall; i++)
     {
         List <Avganger> avganger = context.Avganger.Where(a => a.Rute == rute)
                                    .OrderBy(a => a.Avreise).Take(antall).ToList();;
         Ordre ordre = new Ordre
         {
             Epost      = epost,
             StartStopp = startStopp,
             SluttStopp = sluttStopp,
             Sum        = 250,
             Rute       = rute,
             Avgang     = avganger[i]
         };
         Ordrelinjer ordrelinje = new Ordrelinjer
         {
             Billettype = billettype,
             Ordre      = ordre
         };
         avganger[i].SolgteBilletter++;
         context.Ordre.Add(ordre);
         context.Ordrelinjer.Add(ordrelinje);
     }
 }
예제 #2
0
        public static void SeedDB(IApplicationBuilder app)
        {
            using (var serviceScope = app.ApplicationServices.CreateScope())
            {
                var context = serviceScope.ServiceProvider.GetService <BussContext>();

                // Datbasen blir slettet og opprettet på nytt
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                // Rute NW431 - Fjordekspressen
                var NW431Rute = new Ruter()
                {
                    Linjekode = "NW431", Rutenavn = "Fjordekspressen", Startpris = 79, TilleggPerStopp = 30, Kapasitet = 55
                };
                string[] NW431Stopp = { "Bergen", "Oppedal", "Lavik", "Vadheim", "Førde", "Byrkjelo", "Stryn", "Lom", "Otta", "Oppdal", "Trondheim" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW431Rute, NW431Stopp, context);

                // Rute NW194 - Grenlandsekspressen
                var NW194Rute = new Ruter()
                {
                    Linjekode = "NW194", Rutenavn = "Grenlandsekspressen", Startpris = 50, TilleggPerStopp = 35, Kapasitet = 45
                };
                string[] NW194Stopp = { "Oslo", "Vippetangen", "Drammen", "Kronlia", "Sundbyfoss", "Hvittingfoss", "Svarstad", "Steinsholt", "Siljan", "Skien" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW194Rute, NW194Stopp, context);

                // Rute NW180 - Haukeliekspressen
                var NW180Rute = new Ruter()
                {
                    Linjekode = "NW180", Rutenavn = "Haukeliekspressen", Startpris = 149, TilleggPerStopp = 20, Kapasitet = 65
                };
                string[] NW180Stopp = { "Oslo", "Kongsberg", "Notodden", "Sauland", "Seljord", "Åmot", "Haukeligrend", "Røldal", "Seljestad", "Ølen", "Haugesund" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW180Rute, NW180Stopp, context);

                // Rute 192 - Konkurrenten
                var NW192Rute = new Ruter()
                {
                    Linjekode = "NW192", Rutenavn = "Konkurrenten", Startpris = 49, TilleggPerStopp = 30, Kapasitet = 60
                };
                string[] NW192Stopp = { "Oslo", "Drammen", "Fokserød", "Skjelsvik", "Tangen", "Vinterkjær", "Harebakken", "Grimstad", "Lillesand", "Kristiansand", "Mandal", "Lyngdal", "Flekkefjord", "Sandnes", "Stavanger Lufthavn", "Stavanger", "Bergen" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW192Rute, NW192Stopp, context);

                // Rute 400 - Kystbussen
                var NW400Rute = new Ruter()
                {
                    Linjekode = "NW400", Rutenavn = "Kystbussen", Startpris = 79, TilleggPerStopp = 32, Kapasitet = 40
                };
                string[] NW400Stopp = { "Bergen", "Os", "Halhjem", "Sandvikvåg", "Leirvik", "Haukås", "Aksdal", "Mjåsund", "Arsvågen", "Mortavika", "Stavanger" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW400Rute, NW400Stopp, context);

                //Rute 420 - Sognefjordekspressen
                var NW420Rute = new Ruter()
                {
                    Linjekode = "NW420", Rutenavn = "Sognefjordekspressen", Startpris = 76, TilleggPerStopp = 21, Kapasitet = 35
                };
                string[] NW420Stopp = { "Bergen", "Dale", "Voss", "Gudvangen", "Flåm", "Håbakken", "Lærdal", "Fodnes", "Manheller", "Sogndal" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW420Rute, NW420Stopp, context);
                context.SaveChanges();

                //Rute 182 - Telemarkekspressen
                var NW182Rute = new Ruter()
                {
                    Linjekode = "NW182", Rutenavn = "Telemarkekspressen", Startpris = 95, TilleggPerStopp = 16, Kapasitet = 85
                };
                string[] NW182Stopp = { "Flatdal", "Bø", "Ulefoss", "Skien", "Porsgrunn", "Langangenkrysset", "Ringdal", "Fokserød", "Sandefjord Lufthavn Torp" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW182Rute, NW182Stopp, context);
                context.SaveChanges();

                //Rute 130 - Trysilekspressen
                var NW130Rute = new Ruter()
                {
                    Linjekode = "NW130", Rutenavn = "Trysilekspressen", Startpris = 88, TilleggPerStopp = 28, Kapasitet = 65
                };
                string[] NW130Stopp = { "Oslo",                "Oslo Lufthavn (OSL)", "Romedal", "Myklegard", "Terningmoen", "Elverum", "Kjernmoen", "Trysil Turistsenter",
                                        "Radisson Blu Resort", "Trysil busstasjon",   "Trysil Høyfjellssenter" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW130Rute, NW130Stopp, context);
                context.SaveChanges();

                //Rute 160 - Valdresekspressen
                var NW160Rute = new Ruter()
                {
                    Linjekode = "NW160", Rutenavn = "Valdresekspressen", Startpris = 82, TilleggPerStopp = 31, Kapasitet = 55
                };
                string[] NW160Stopp = { "Oslo", "Hønefoss", "Nes i Ådal", "Fagernes", "Ryfoss", "Grindaheim", "Tyinkrysset", "Tyin", "Sletterust", "Øvre Årdal", "Årdal" };
                // Injiserer dataen inn i databasen og lagrer endringene
                InjiserRute(NW160Rute, NW160Stopp, context);
                context.SaveChanges();

                //Rute 162 - Øst-Vestekspressen  (Modisert for å passe vårt program)
                var NW162Rute = new Ruter()
                {
                    Linjekode = "NW162", Rutenavn = "Øst-Vestekspressen", Startpris = 72, TilleggPerStopp = 29, Kapasitet = 65
                };
                string[] NW162Stopp = { "Lillehammer", "Dokka", "Fagernes", "Gol", "Geilo", "Eidfjord", "Stanghelle", "Bergen" };
                // Injiserer dataen inn i databasen og lagrer endringeneE
                InjiserRute(NW162Rute, NW162Stopp, context);
                context.SaveChanges();

                // Injiserer Billettypene
                Billettyper barn = new Billettyper()
                {
                    Billettype = "Barn", Rabattsats = 50
                };
                Billettyper student = new Billettyper()
                {
                    Billettype = "Student", Rabattsats = 25
                };
                Billettyper honnor = new Billettyper()
                {
                    Billettype = "Honnør", Rabattsats = 25
                };
                Billettyper voksen = new Billettyper()
                {
                    Billettype = "Voksen", Rabattsats = 0
                };
                List <Billettyper> billettyper = new List <Billettyper> {
                    voksen, honnor, student, barn
                };
                InjiserBillettyper(billettyper, context);

                Brukere admin = new Brukere();
                admin.Brukernavn = "Admin";
                admin.Tilgang    = "Admin";
                string passord = "Admin123";

                byte[] salt = BrukereRepository.LagSalt();
                byte[] hash = BrukereRepository.LagHash(passord, salt);
                admin.Passord = hash;
                admin.Salt    = salt;
                context.Brukere.Add(admin);

                // Injiserer Avganger
                DateTime idag = DateTime.Now;
                InjiserAvganger(idag, NW431Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW194Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW180Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW194Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW192Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW400Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW420Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW182Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW130Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW160Rute, 2.00, 110, context);
                InjiserAvganger(idag, NW162Rute, 2.00, 110, context);
                context.SaveChanges();

                // Injiserer Ordre og Ordrelinjer for de 7 første rutene
                Stopp sluttStopp;
                Stopp startStopp;

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Bergen");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Trondheim");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW431Rute, student, 5, context);

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Oslo");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Skien");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW194Rute, voksen, 5, context);

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Oslo");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Haugesund");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW180Rute, voksen, 5, context);

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Oslo");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Bergen");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW192Rute, voksen, 5, context);

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Bergen");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Stavanger");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW400Rute, voksen, 5, context);

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Bergen");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Sogndal");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW420Rute, voksen, 5, context);

                startStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Flatdal");
                sluttStopp = context.Stopp.FirstOrDefault(s => s.Navn == "Ringdal");
                InjiserOrdre("*****@*****.**", startStopp, sluttStopp, NW182Rute, voksen, 5, context);

                // Lagrer all seedet data
                context.SaveChanges();
            }
        }