private static void InjiserBillettyper(List <Billettyper> billettyper, BussContext context) { foreach (Billettyper billettype in billettyper) { context.Billettyper.Add(billettype); } }
/* Metode som tar inn et Ruter-objekt en liste med Stopp og en * DB-context og injiserer det inn i databasen */ private static void InjiserRute(Ruter rute, string[] stoppListe, BussContext context) { context.Ruter.Add(rute); // Nytt instans av Ruter i databasen // Lopper gjennom alle stoppene i listen med stopp int stoppNummer = 1; foreach (string stoppnavn in stoppListe) { /* Finner ut om stoppet allerede eksisterer i databasen, * hvis ikke legges det til et nytt instans av Stopp i databasen */ Stopp stopp = context.Stopp.FirstOrDefault(s => s.Navn == stoppnavn); if (stopp == null) { stopp = new Stopp() { Navn = stoppnavn }; context.Stopp.Add(stopp); } // Genererer tilfeldig tall mellom 35 og 45 Random rInt = new Random(); int tilfeldigTid = rInt.Next(35, 45); // Nytt instans av RuteStopp var ruteStopp = new RuteStopp() { StoppNummer = stoppNummer, MinutterTilNesteStopp = tilfeldigTid, Stopp = stopp, Rute = rute }; // Nytt instans av RuteStopp i datbasen context.RuteStopp.Add(ruteStopp); stoppNummer++; } context.SaveChanges(); }
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); } }
/* Legger inn en nye avganer * int antall: antall avganger som skal injiserers * double hyppighet: hvor lenge mellom hver avgang */ private static void InjiserAvganger(DateTime idag, Ruter rute, double hyppighet, int antall, BussContext context) { Random tInt = new Random(); int tilfeldigTime = tInt.Next(7, 11); // Velger Tilfeldig time 7 - 11 // Velger tilfeldig minutt fra listen int tilfeldigIndex = tInt.Next(0, 3); List <int> minuttliste = new List <int> { 0, 15, 30, 45 }; int tilfeldigMinutt = minuttliste[tilfeldigIndex]; // Ny dato basert på tilfeldig time og minutt TimeSpan tilfeldigTidspunkt = new TimeSpan(tilfeldigTime, tilfeldigMinutt, 0); DateTime tilfeldigAvreise = idag.Date + tilfeldigTidspunkt; // Produserer 100 avganger plasser annen hver dag for (int i = 0; i < antall; i++) { Avganger nyAvgang = new Avganger() { Avreise = tilfeldigAvreise, SolgteBilletter = 0, Rute = rute }; tilfeldigAvreise = tilfeldigAvreise.AddDays(hyppighet); context.Avganger.Add(nyAvgang); } }