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); } }
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(); } }