public async Task <ActionResult> OppdaterRute(Ruter endretRute) { if (string.IsNullOrEmpty(HttpContext.Session.GetString(_innlogget))) { return(Unauthorized("Ikke innlogget")); } if (ModelState.IsValid) { bool returOK = await _db.OppdaterRute(endretRute); if (!returOK) { melding = $"Endringen av Ruten med linjekode: {endretRute.Linjekode}, " + $"kunne ikke utføres med verdiene: {endretRute}"; _log.LogWarning(melding); return(NotFound(melding)); } melding = $"Endring av Ruten med linjekode: {endretRute.Linjekode}, " + $"ble utfør med verdiene: {endretRute}"; _log.LogInformation(melding); return(Ok(melding)); } _log.LogWarning(ugyldigValidering); return(BadRequest(ugyldigValidering)); }
public async Task <bool> SlettRute(int id) { try { Buss_Rute buss_Rute = await _db.Buss_rute.FindAsync(id); Ruter rute = await _db.Ruter.FindAsync(buss_Rute.Rute.RuteId); List <Avganger> avganger = await _db.Avganger.Where((a) => a.Rute.RuteId == rute.RuteId).ToListAsync(); List <Avgangstider> avgangstider = new List <Avgangstider>(); avganger.ForEach((a) => { a.Tider.ForEach(at => avgangstider.Add(at)); }); Busser buss = await _db.Busser.FindAsync(buss_Rute.Buss.BussId); _db.Avgangstider.RemoveRange(avgangstider); _db.Avganger.RemoveRange(avganger); _db.Busser.Remove(buss); _db.Ruter.Remove(rute); _db.Buss_rute.Remove(buss_Rute); await _db.SaveChangesAsync(); return(true); } catch (Exception e) { return(false); } }
[HttpPost] //Henter ut alle tilgjengelige stasjonertil med samme rute for stasjonerfra public async Task <List <Stasjoner> > HentAlleStasjonerTil(int id) { try { Avganger stasjonAvgang = await _db.Avganger.FirstOrDefaultAsync(b => b.Stopp.StasjonId == id); Ruter rute = await _db.Ruter.FirstOrDefaultAsync(rute => rute.RuteId == stasjonAvgang.Rute.RuteId); List <Stasjoner> stasjonerRute = new List <Stasjoner>(); //finner riktig rute for stasjonerfra rute.Avganger.ForEach(Avganger => { if (!(Avganger.Stopp.StasjonId == id)) { stasjonerRute.Add(Avganger.Stopp); } ; } ); return(stasjonerRute); } catch { return(null); } }
// Hjelpemetode som finner neste avgang som passer for brukeren public async Task <Avganger> NesteAvgang(Ruter fellesRute, int reisetid, bool avreiseEtter, DateTime innTid, int antallBilletter) { try { List <Avganger> muligeAvganger = new List <Avganger>(); // Hvis "Avreise Etter" er valgt av brukeren if (avreiseEtter) { // Henter alle avganger hvor brukeren kan reiser etter innTid muligeAvganger = await _db.Avganger .Where(a => a.Rute == fellesRute && a.Avreise >= innTid).ToListAsync(); } // Hvis "Ankomst Før" er valgt av brukeren else { // Trekker fra reisetid på innTid for å finne ut når bruker må reise for å komme fram i tide DateTime avreise = innTid.AddMinutes(-reisetid); // Henter alle avganger hvor brukeren kan kommer fram før innTid muligeAvganger = await _db.Avganger .Where(a => a.Rute == fellesRute && a.Avreise <= avreise) .ToListAsync(); } if (muligeAvganger.Count > 0) // Hvis listen med mulige avganger ikke er tom { Avganger nesteAvgang = muligeAvganger[0]; TimeSpan lavesteDiff = innTid.Subtract(muligeAvganger[0].Avreise).Duration(); // Føste avgang i listen sitt avvik fra ønsket tid foreach (Avganger muligAvgang in muligeAvganger) // Looper gjennom alle avgangene { TimeSpan diff = innTid.Subtract(muligAvgang.Avreise).Duration(); if (diff < lavesteDiff) // Hvis differansen fra ønsket tid er mindre enn hittil laveste differanse { if (muligAvgang.SolgteBilletter + antallBilletter <= fellesRute.Kapasitet) // Hvis det er nok billetter igjen { nesteAvgang = muligAvgang; lavesteDiff = diff; } } } return(nesteAvgang); } else { _log.LogInformation("Finner ingen avganger"); return(null); } } catch (ArgumentOutOfRangeException bound) { _log.LogInformation(bound.Message); return(null); } }
public async Task <Ruter> HentEnRute(string linjekode) { try { Ruter rute = await _db.Ruter.FindAsync(linjekode); return(rute); } catch (Exception e) { _log.LogInformation(e.Message); return(null); } }
// Metode for å legge til en ny rute i DB public async Task <bool> NyRute(Ruter rute) { try { _db.Ruter.Add(rute); await _db.SaveChangesAsync(); // Lagrer endringene return(true); } catch (Exception e) { _log.LogInformation(e.Message); return(false); } }
public async Task NyRute_RiktigeVerdier() { // Arrange Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.NyRute(enRute)).ReturnsAsync(true); MockSession(_innlogget); // Act var resultat = await ruterController.NyRute(enRute) as OkObjectResult; // Assert Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode); Assert.Equal($"Ny Rute ble lagres med verdiene: {enRute}", resultat.Value); }
public async Task NyRute_IkkeTilgang() { // Arrange Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.NyRute(enRute)).ReturnsAsync(true); MockSession(_ikkeInnlogget); // Act var resultat = await ruterController.NyRute(enRute) as UnauthorizedObjectResult; // Assert Assert.Equal((int)HttpStatusCode.Unauthorized, resultat.StatusCode); Assert.Equal("Ikke innlogget", resultat.Value); }
public async Task NyRute_IkkeOK() { // Arrange Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.NyRute(enRute)).ReturnsAsync(false); MockSession(_innlogget); // Act var resultat = await ruterController.NyRute(enRute) as BadRequestObjectResult; // Assert Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode); Assert.Equal($"Ny Rute kunne ikke lagres med verdiene: {enRute}", resultat.Value); }
public async Task <bool> FjernRute(string linjekode) { try { // Heter Ruter-objektet og tilhørende RuteStopp, Ordre og Avganger fra DB Ruter rute = await _db.Ruter.FindAsync(linjekode); List <RuteStopp> ruteStopp = await _db.RuteStopp.Where(rs => rs.Rute == rute).ToListAsync(); List <Ordre> ordre = await _db.Ordre.Where(o => o.Rute == rute).ToListAsync(); List <Avganger> avganger = await _db.Avganger.Where(a => a.Rute == rute).ToListAsync(); // Fjerner alle tilhørende rutestopp fra DB foreach (var rs in ruteStopp) { _db.RuteStopp.Remove(rs); } // Fjerner alle tilhørende ordre og ordrelinjer fra DB foreach (var o in ordre) { List <Ordrelinjer> ordrelinjer = await _db.Ordrelinjer.Where(ol => ol.Ordre == o).ToListAsync(); foreach (Ordrelinjer ol in ordrelinjer) { _db.Ordrelinjer.Remove(ol); } _db.Ordre.Remove(o); } // Fjerner alle tilhørende avganer fra DB foreach (var a in avganger) { _db.Avganger.Remove(a); } // Fjerner ruten, lagrer endringen og returnere true hvis alt gikk fint _db.Ruter.Remove(rute); _db.SaveChanges(); return(true); } catch (Exception e) { _log.LogInformation(e.Message); return(false); } }
public async Task OppdaterRute_RiktigeVerdier() { // Arrange Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.OppdaterRute(enRute)).ReturnsAsync(true); MockSession(_innlogget); // Act var resultat = await ruterController.OppdaterRute(enRute) as OkObjectResult; // Assert Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode); Assert.Equal($"Endring av Ruten med linjekode: {enRute.Linjekode}, " + $"ble utfør med verdiene: {enRute}", resultat.Value); }
public async Task OppdaterRute_IkkeOK() { // Arrange Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.OppdaterRute(enRute)).ReturnsAsync(false); MockSession(_innlogget); // Act var resultat = await ruterController.OppdaterRute(enRute) as NotFoundObjectResult; // Assert Assert.Equal((int)HttpStatusCode.NotFound, resultat.StatusCode); Assert.Equal($"Endringen av Ruten med linjekode: {enRute.Linjekode}, " + $"kunne ikke utføres med verdiene: {enRute}", resultat.Value); }
public async Task NyRute_RegEx() { // Arrange Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.NyRute(enRute)).ReturnsAsync(true); MockSession(_innlogget); ruterController.ModelState.AddModelError("Linjekode", "Feil i inputvalideringen på server"); // Act var resultat = await ruterController.NyRute(enRute) as BadRequestObjectResult; // Assert Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode); Assert.Equal("Feil i inputvalideringen på server", resultat.Value); }
public async Task <bool> SlettRute(int id) { try { Ruter enDBRute = await _db.Ruter.FindAsync(id); _db.Ruter.Remove(enDBRute); await _db.SaveChangesAsync(); return(true); } catch (Exception e) { _log.LogError(e.Message); return(false); } }
public async Task HentEnRute_RiktigeVerdier() { // Arrange string linjekode = "NW431"; Ruter enRute = HentRuterListe()[0]; mockRepo.Setup(br => br.HentEnRute(linjekode)).ReturnsAsync(enRute); MockSession(_innlogget); // Act var resultat = await ruterController.HentEnRute(linjekode) as OkObjectResult; Ruter forventetRute = (Ruter)resultat.Value; // Assert Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode); Assert.Equal($"{enRute}", forventetRute.ToString()); }
public async Task <int> BeregnPris(Ruter rute, int antallStopp, List <string> billettyper) { try { // Finner den standard billettpris for en reise int startpris = rute.Startpris; int tilleggPerStopp = rute.TilleggPerStopp; int maxPris = startpris + (tilleggPerStopp * antallStopp); // Henter liste med alle billettyper i DB List <Billettyper> billettypeListe = await _db.Billettyper.Select(b => new Billettyper { Billettype = b.Billettype, Rabattsats = b.Rabattsats }).ToListAsync(); // Finner rabattsatsen for en billett var rabbattsatser = new List <int>(); foreach (string billettype in billettyper) { int i = 0; while (billettypeListe[i].Billettype != billettype) { i++; } rabbattsatser.Add(billettypeListe[i].Rabattsats); } // Finne totalpris double totalpris = 0; foreach (int rabbattsats in rabbattsatser) { double billettPris = maxPris * (1 - ((double)rabbattsats / 100)); // eks. 1 - 0.25 = 0.75 totalpris += billettPris; } return((int)Math.Round(totalpris)); } catch (Exception e) { _log.LogInformation(e.Message); return(-1); } }
public async Task <bool> LeggTilRute(Rute rute) { try { var leggTilRute = new Ruter(); leggTilRute.Id = rute.Id; leggTilRute.Navn = rute.Navn; leggTilRute.StasjonerPaaRute = rute.StasjonerPaaRute; _db.Ruter.Add(leggTilRute); await _db.SaveChangesAsync(); return(true); } catch (Exception e) { _log.LogError(e.Message); return(false); } }
// Returnerer en List med Ruter-objekter private List <Ruter> HentRuterListe() { var rute1 = new Ruter() { Linjekode = "NW431", Rutenavn = "Fjordekspressen", Startpris = 79, TilleggPerStopp = 30, Kapasitet = 55 }; var rute2 = new Ruter() { Linjekode = "NW194", Rutenavn = "Grenlandsekspressen", Startpris = 50, TilleggPerStopp = 35, Kapasitet = 45 }; var rute3 = new Ruter() { Linjekode = "NW180", Rutenavn = "Haukeliekspressen", Startpris = 149, TilleggPerStopp = 20, Kapasitet = 65 }; return(new List <Ruter> { rute1, rute2, rute3 }); }
// Hjelpemetode som finner stoppnummeret til et spesifikt stopp i en spesifikk rute public async Task <int> FinnStoppNummer(Stopp stopp, Ruter fellesRute) { try { RuteStopp ruteStopp = await _db.RuteStopp .FirstOrDefaultAsync(rs => rs.Stopp == stopp && rs.Rute == fellesRute); if (ruteStopp == null) { _log.LogInformation("Stoppet er ikke på ruten"); return(-1); } return(ruteStopp.StoppNummer); } catch (Exception e) { _log.LogInformation(e.Message); return(-1); } }
public async Task <Rute> HentEnRute(int id) { try { Ruter rute = await _db.Ruter.FindAsync(id); var hentetRute = new Rute() { Id = rute.Id, Navn = rute.Navn, StasjonerPaaRute = rute.StasjonerPaaRute }; return(hentetRute); } catch (Exception e) { _log.LogError(e.Message); return(null); } }
public async Task <ActionResult> HentEnRute(string linjekode) { if (string.IsNullOrEmpty(HttpContext.Session.GetString(_innlogget))) { return(Unauthorized("Ikke innlogget")); } if (ModelState.IsValid) { Ruter rute = await _db.HentEnRute(linjekode); if (rute == null) { melding = "Ruten ble ikke funnet"; _log.LogWarning(melding); return(NotFound(melding)); } return(Ok(rute)); } _log.LogWarning(ugyldigValidering); return(BadRequest(ugyldigValidering)); }
// Metode for å oppdaterer rutedetaljer public async Task <bool> OppdaterRute(Ruter endretRute) { try { // Finner ruten som skal oppdateres og oppdaterer verdiene Ruter gammelRute = await _db.Ruter.FindAsync(endretRute.Linjekode); gammelRute.Rutenavn = endretRute.Rutenavn; gammelRute.Startpris = endretRute.Startpris; gammelRute.TilleggPerStopp = endretRute.TilleggPerStopp; gammelRute.Kapasitet = endretRute.Kapasitet; await _db.SaveChangesAsync(); return(true); } catch (Exception e) { _log.LogInformation(e.Message); return(false); } }
// Hjelpemetode som beregner reisetiden fra startStopp til sluttStopp public async Task <int> BeregnReisetid(int startStopp, int sluttStopp, Ruter fellesRute) { try { List <int> minTilNesteStoppList = await _db.RuteStopp .Where(rs => rs.StoppNummer >= startStopp && rs.StoppNummer < sluttStopp && rs.Rute == fellesRute) .Select(rs => rs.MinutterTilNesteStopp) .ToListAsync(); int reisetid = 0; foreach (int minutter in minTilNesteStoppList) { reisetid += minutter; } return(reisetid); } catch (Exception e) { _log.LogInformation(e.Message); return(-1); } }
// Hjelpemetode som finner Rutern to lister med Ruter har til felles public Ruter FinnFellesRute(List <Ruter> startStoppRuter, List <Ruter> sluttStoppRuter) { if (startStoppRuter.IsNullOrEmpty() || sluttStoppRuter.IsNullOrEmpty()) { _log.LogInformation(" Ett eller begge oppgitte stopp har ingen rute"); return(null); } Ruter fellesRute = new Ruter(); foreach (Ruter startStoppRute in startStoppRuter) { foreach (Ruter sluttStoppRute in sluttStoppRuter) { if (startStoppRute.Linjekode == sluttStoppRute.Linjekode) { fellesRute = startStoppRute; return(fellesRute); } } } return(fellesRute); }
public async Task <bool> NyAvgang(NyAvgang nyAvgang) { try { Ruter rute = await _db.Ruter.FindAsync(nyAvgang.Linjekode); Avganger avgang = new Avganger { Avreise = _hjelp.StringTilDateTime(nyAvgang.Dato, nyAvgang.Tidspunkt), SolgteBilletter = nyAvgang.SolgteBilletter, Rute = rute }; _db.Avganger.Add(avgang); await _db.SaveChangesAsync(); return(true); } catch (Exception e) { _log.LogInformation(e.Message); return(false); } }
public async Task <ActionResult> NyRute(Ruter rute) { if (string.IsNullOrEmpty(HttpContext.Session.GetString(_innlogget))) { return(Unauthorized("Ikke innlogget")); } if (ModelState.IsValid) { bool returOK = await _db.NyRute(rute); if (!returOK) { melding = $"Ny Rute kunne ikke lagres med verdiene: {rute}"; _log.LogWarning(melding); return(BadRequest(melding)); } melding = $"Ny Rute ble lagres med verdiene: {rute}"; _log.LogInformation(melding); return(Ok(melding)); } _log.LogWarning(ugyldigValidering); return(BadRequest(ugyldigValidering)); }
// Endrer avreisetiden hvis påstigning ikke er første stopp i ruten public async Task <DateTime> BeregnAvreisetid(DateTime avreise, int stoppNummer, Ruter fellesRute) { // Hvis påstigning er første stopp i ruten endres ikke avreise if (stoppNummer == 1) { return(avreise); } else { List <int> minTilNesteStoppList = await _db.RuteStopp .Where(rs => rs.StoppNummer < stoppNummer && rs.Rute == fellesRute) .Select(rs => rs.MinutterTilNesteStopp) .ToListAsync(); int totalTid = 0; foreach (int minutter in minTilNesteStoppList) { totalTid += minutter; } return(avreise.AddMinutes(totalTid)); } }
// Fullfør ordre public async Task <bool> FullforOrdre(NyOrdre ordreModel) { try { // Henter ut ruten som tilhører OrdreModel Ruter rute = await _db.Ruter.FirstOrDefaultAsync(r => r.Linjekode == ordreModel.Linjekode); // Henter Avgangens Id Avganger avgang = await _db.Avganger.FirstOrDefaultAsync(a => a.Id == ordreModel.AvgangId); // Finner startStopp, og finner stoppnummeret i ruten Stopp startStopp = await _db.Stopp.FirstOrDefaultAsync(s => s.Navn == ordreModel.StartStopp); int stoppNummer1 = await _hjelp.FinnStoppNummer(startStopp, rute); // Finner sluttStopp, og finner stoppnummeret i ruten Stopp sluttStopp = await _db.Stopp.FirstOrDefaultAsync(s => s.Navn == ordreModel.SluttStopp); int stoppNummer2 = await _hjelp.FinnStoppNummer(sluttStopp, rute); // Regner ut antall stopp int antallStopp = stoppNummer2 - stoppNummer1; // Finner summen for reisen // antallStopp, rute, liste med billettype int sum = await _hjelp.BeregnPris(rute, antallStopp, ordreModel.Billettyper); // Lager en ordre basert på ordreModel, rute og avgang var ordre = new Ordre { Epost = ordreModel.Epost, StartStopp = startStopp, SluttStopp = sluttStopp, Sum = sum, Rute = rute, Avgang = avgang }; // Legger ordren til i databasen _db.Ordre.Add(ordre); // Raden til spesifisert avgang Avganger dbAvgang = _db.Avganger.Find(avgang.Id); // Går gjennom listen med billettyper foreach (string billettype in ordreModel.Billettyper) { // Henter ut en billettype i listen Billettyper billettypeObjekt = await _db.Billettyper.FirstOrDefaultAsync(a => a.Billettype == billettype); // Lager en ordrelinje var ordrelinje = new Ordrelinjer { Billettype = billettypeObjekt, Ordre = ordre }; // Legger denne ordrelinjen til databasen _db.Ordrelinjer.Add(ordrelinje); // Øker antalll solgte billetter med 1 dbAvgang.SolgteBilletter++; } // Lagrer alt som er blitt lagt til i databasen _db.SaveChanges(); return(true); } catch (Exception e) { _log.LogInformation(e.Message); return(false); } }
public async Task HentAlleRuterOK() { var Avgangstider = new Avgangstider { TidId = 1, Tid = new TimeSpan(12, 00, 00) }; var Avgangstider1 = new Avgangstider { TidId = 2, Tid = new TimeSpan(14, 00, 00) }; var listAvgang = new List <Avgangstider>(); listAvgang.Add(Avgangstider); listAvgang.Add(Avgangstider1); var Stasjoner = new Stasjoner { StasjonId = 1, StasjonNavn = "Stovner" }; var Buss = new Busser { BussId = 1, BussNavn = "Oslo" }; var Rute = new Ruter { RuteId = 1, Pris = 10 }; var Avgang = new Avganger { StoppId = 1, Stopp = Stasjoner, Tider = listAvgang, Rute = Rute }; var Avgang1 = new Avganger { StoppId = 2, Stopp = Stasjoner, Tider = listAvgang, Rute = Rute }; var listAvganger = new List <Avganger>(); listAvganger.Add(Avgang); listAvganger.Add(Avgang1); var bussrute1 = new Buss_Rute { Buss_RuteId = 1, TidFra = new TimeSpan(10, 00, 00), TidTil = new TimeSpan(16, 00, 00), Buss = Buss, Rute = Rute }; var ruteliste = new List <Buss_Rute>(); mockRep.Setup(k => k.HentAlleRuter()).ReturnsAsync(ruteliste); var billettController = new BillettController(mockRep.Object, mockLog.Object); mockSession[_loggetInn] = _loggetInn; mockHttpContext.Setup(s => s.Session).Returns(mockSession); billettController.ControllerContext.HttpContext = mockHttpContext.Object; // Act var resultat = await billettController.HentAlleRuter() as OkObjectResult; // Assert Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode); Assert.Equal <List <Buss_Rute> >((List <Buss_Rute>)resultat.Value, ruteliste); }
public async Task <bool> LeggTilRute(Rute rute) { try { var Buss = new Busser(); Buss.BussNavn = rute.BussNavn; var BussRetur = new Busser(); BussRetur.BussNavn = rute.BussNavn + "_Retur"; string[] avganger = rute.Avganger.Split(",".ToCharArray()); string[] avgangstider = rute.Tider.Split(",".ToCharArray()); // stasjoner fra Oslo_Larvik // Stasjonene tar ikke for seg virkeligheten var stasjoner = new List <Stasjoner> { new Stasjoner { StasjonNavn = avganger[0] }, new Stasjoner { StasjonNavn = avganger[1] }, new Stasjoner { StasjonNavn = avganger[2] }, new Stasjoner { StasjonNavn = avganger[3] }, new Stasjoner { StasjonNavn = avganger[4] }, new Stasjoner { StasjonNavn = avganger[5] } }; var Last_Inserted_Id = _db.Avganger.OrderByDescending(u => u.StoppId).FirstOrDefault(); int id = Last_Inserted_Id.StoppId; //avgangstider Til Buss Oslo_Larvik var avgang = new List <Avganger> { new Avganger { StoppId = id + 1, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[0].Split(":")[0]), int.Parse(avgangstider[0].Split(":")[1]), 00) } }, Stopp = stasjoner[0] }, new Avganger { StoppId = id + 2, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[1].Split(":")[0]), int.Parse(avgangstider[1].Split(":")[1]), 00) } }, Stopp = stasjoner[1] }, new Avganger { StoppId = id + 3, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[2].Split(":")[0]), int.Parse(avgangstider[2].Split(":")[1]), 00) } }, Stopp = stasjoner[2] }, new Avganger { StoppId = id + 4, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[3].Split(":")[0]), int.Parse(avgangstider[3].Split(":")[1]), 00) } }, Stopp = stasjoner[3] }, new Avganger { StoppId = id + 5, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[4].Split(":")[0]), int.Parse(avgangstider[4].Split(":")[1]), 00) } }, Stopp = stasjoner[4] }, new Avganger { StoppId = id + 6, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[5].Split(":")[0]), int.Parse(avgangstider[5].Split(":")[1]), 00) } }, Stopp = stasjoner[5] }, }; var Rute = new Ruter { Pris = 100, Avganger = avgang }; var BussRute1 = new Buss_Rute { TidFra = new TimeSpan(int.Parse(avgangstider[0].Split(":")[0]), int.Parse(avgangstider[0].Split(":")[1]), 00), TidTil = new TimeSpan(int.Parse(avgangstider[5].Split(":")[0]), int.Parse(avgangstider[0].Split(":")[1]), 00), Buss = Buss, Rute = Rute }; _db.Buss_rute.Add(BussRute1); var avgangRetur = new List <Avganger> { new Avganger { StoppId = id + 7, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[5].Split(":")[0]), int.Parse(avgangstider[5].Split(":")[1]), 00) } }, Stopp = stasjoner[5] }, new Avganger { StoppId = id + 8, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[4].Split(":")[0]), int.Parse(avgangstider[4].Split(":")[1]), 00) } }, Stopp = stasjoner[4] }, new Avganger { StoppId = id + 9, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[3].Split(":")[0]), int.Parse(avgangstider[3].Split(":")[1]), 00) } }, Stopp = stasjoner[3] }, new Avganger { StoppId = id + 10, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[2].Split(":")[0]), int.Parse(avgangstider[2].Split(":")[1]), 00) } }, Stopp = stasjoner[2] }, new Avganger { StoppId = id + 11, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[1].Split(":")[0]), int.Parse(avgangstider[1].Split(":")[1]), 00) } }, Stopp = stasjoner[1] }, new Avganger { StoppId = id + 12, Tider = new List <Avgangstider> { new Avgangstider { Tid = new TimeSpan(int.Parse(avgangstider[0].Split(":")[0]), int.Parse(avgangstider[0].Split(":")[1]), 00) } }, Stopp = stasjoner[0] }, }; var RuteRetur = new Ruter { Pris = 100, Avganger = avgangRetur }; var BussRute1Retur = new Buss_Rute { TidFra = new TimeSpan(int.Parse(avgangstider[5].Split(":")[0]), int.Parse(avgangstider[0].Split(":")[1]), 00), TidTil = new TimeSpan(int.Parse(avgangstider[0].Split(":")[0]), int.Parse(avgangstider[0].Split(":")[1]), 00), Buss = BussRetur, Rute = RuteRetur }; _db.Buss_rute.Add(BussRute1Retur); await _db.SaveChangesAsync(); return(true); } catch (Exception e) { return(false); } }