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