Пример #1
0
        public bool leggTilStasjonPaaBane(string avgang, int stasjonID, int baneID)
        {
            var db = new DB();

            Stasjon innStasjon = db.Stasjon.Find(stasjonID);
            Bane    innBane    = db.Bane.Find(baneID);

            var nyStasjonPaaBane = new StasjonPaaBane()
            {
                Stasjon = innStasjon,
                Bane    = innBane,
                Avgang  = avgang
            };

            using (db)
            {
                try
                {
                    db.StasjonPaaBane.Add(nyStasjonPaaBane);

                    //legger til den nye StasjonPaaBane i Bane
                    innBane.StasjonPaaBane.Add(nyStasjonPaaBane);

                    db.SaveChanges();
                    return(true);
                }

                catch (Exception)
                {
                    return(false);
                }
            }
        }
Пример #2
0
        public bool SettInnStasjon(Stasjon innStasjon)
        {
            try
            {
                var stasjon = new DBStasjon()
                {
                    Stasjon = innStasjon.StasjonNavn
                };

                if (_db.Strekning.Any(s => s.Stasjon == innStasjon.StasjonNavn))
                {
                    return(false);
                }

                var endring = new DBEndring()
                {
                    Tidspunkt        = DateTime.Now,
                    EndringOperasjon = "En ny stasjon har blitt lagt til: ",
                    Endring          = $"{stasjon.Stasjon}"
                };

                _db.Endring.Add(endring);

                _db.Strekning.Add(stasjon);
                _db.SaveChanges();

                return(true);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når en stasjon skulle blitt lagt til", "DBStasjon:SettInnStasjon",
                                  feil);
                return(false);
            }
        }
Пример #3
0
        public bool slettStasjon(int stasjonID)
        {
            using (var db = new DB())
            {
                try
                {
                    Stasjon stasjon = db.Stasjon.Find(stasjonID);


                    //sletter alle StasjonPaaBane som inneholder stasjonen som slettes
                    List <StasjonPaaBane> slettStasjonPaaBaner = new List <StasjonPaaBane>();
                    foreach (StasjonPaaBane s in db.StasjonPaaBane)
                    {
                        if (s.Stasjon.StasjonsID == stasjonID)
                        {
                            slettStasjonPaaBaner.Add(s);
                        }
                    }
                    foreach (StasjonPaaBane s in slettStasjonPaaBaner)
                    {
                        db.StasjonPaaBane.Remove(s);
                    }
                    db.Stasjon.Remove(stasjon);


                    db.SaveChanges();
                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
Пример #4
0
        // -----------------------------------------------------------------------------------------
        //Metoder for å hente stasjonsnavn, tidspunkt o.l. til bestillingsview

        public String hentStasjonsNavn(int id)
        {
            Stasjon stasjon     = db.Stasjon.Find(id);
            String  stasjonNavn = stasjon.Stasjonsnavn;

            return(stasjonNavn);
        }
Пример #5
0
        public List <Stasjon> HentAlleStasjoner()
        {
            try
            {
                var alleStasjoner = _db.Strekning.ToList();
                var stasjoner     = new List <Stasjon>();

                foreach (var stasjon in alleStasjoner)
                {
                    var enStasjon = new Stasjon()
                    {
                        SId         = stasjon.SId,
                        StasjonNavn = stasjon.Stasjon
                    };
                    stasjoner.Add(enStasjon);
                }

                return(stasjoner);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når en HentAlleStasjoner-metoden skulle hente ut alle stasjonene",
                                  "DBStasjon:HentAlleStasjoner", feil);
                return(null);
            }
        }
Пример #6
0
        public Stasjon hentStasjon(String Stasjonsnavn)
        {
            Stasjon stasjon = new Stasjon();

            foreach (Stasjon s in db.Stasjon)
            {
                if (s.Stasjonsnavn == Stasjonsnavn)
                {
                    stasjon = s;
                }
            }
            return(stasjon);
        }
Пример #7
0
        public bool endreStasjon(int stasjonID, stasjon innStasjon)
        {
            using (var db = new DB())
            {
                try
                {
                    Stasjon endreStasjon = db.Stasjon.Find(stasjonID);
                    endreStasjon.Stasjonsnavn = innStasjon.Stasjonsnavn;
                    db.SaveChanges();
                    return(true);
                }

                catch (Exception)
                {
                    return(false);
                }
            }
        }
Пример #8
0
        public Stasjon HentEnStasjon(int SId)
        {
            try
            {
                DBStasjon stasjon   = _db.Strekning.FirstOrDefault(s => s.SId == SId);
                var       enStasjon = new Stasjon()
                {
                    SId         = stasjon.SId,
                    StasjonNavn = stasjon.Stasjon
                };

                return(enStasjon);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når HentEnStasjon-metoden skulle hente ut en stasjon.",
                                  "DBStasjon:HentEnStasjon", feil);
                return(null);
            }
        }
Пример #9
0
        // ------------------------------------------------------------------------------------
        // Metoder for å endre, slette og legge til stasjoner i DB

        public bool leggTilStasjon(stasjon innStasjon)
        {
            var nyStasjon = new Stasjon()
            {
                Stasjonsnavn = innStasjon.Stasjonsnavn
            };

            using (var db = new DB())
            {
                try
                {
                    db.Stasjon.Add(nyStasjon);
                    db.SaveChanges();
                    return(true);
                }

                catch (Exception)
                {
                    return(false);
                }
            }
        }
Пример #10
0
        public List <String> hentTilStasjonsNavn(String fraStasjonNavn)
        {
            Stasjon fraStasjon = hentStasjon(fraStasjonNavn);

            var fraStasjonBaneListe = new List <Bane>();


            //henter alle banene som inneholder FraStasjon
            foreach (Bane bane in db.Bane)
            {
                foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                {
                    if (stasjonPaaBane.Stasjon == fraStasjon)
                    {
                        fraStasjonBaneListe.Add(bane);
                    }
                }
            }

            var tilStasjoner = new List <String>();

            //legger til alle stasjonene som kjører fra FraStasjon i en liste
            foreach (Bane bane in fraStasjonBaneListe)
            {
                foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                {
                    //hindrer at FraStasjon blir lagt til i lista
                    if (stasjonPaaBane.Stasjon != fraStasjon)
                    {
                        if (!tilStasjoner.Contains(stasjonPaaBane.Stasjon.Stasjonsnavn))
                        {
                            tilStasjoner.Add(stasjonPaaBane.Stasjon.Stasjonsnavn);
                        }
                    }
                }
            }
            return(tilStasjoner);
        }
Пример #11
0
        public bool endreStasjonPaaBane(stasjonPaaBane innStasjonPaaBane, int stasjonPaaBaneID)
        {
            using (var db = new DB())
            {
                try
                {
                    StasjonPaaBane EndreStasjonPaaBane = db.StasjonPaaBane.Find(stasjonPaaBaneID);
                    Stasjon        innStasjon          = db.Stasjon.Find(innStasjonPaaBane.StasjonsID);
                    Bane           innBane             = db.Bane.Find(innStasjonPaaBane.BaneID);

                    EndreStasjonPaaBane.Stasjon = innStasjon;
                    EndreStasjonPaaBane.Bane    = innBane;
                    EndreStasjonPaaBane.Avgang  = innStasjonPaaBane.Avgang;
                    db.SaveChanges();
                    return(true);
                }

                catch (Exception)
                {
                    return(false);
                }
            }
        }
Пример #12
0
        //Endre stasjon
        public bool EndreStasjon(Stasjon innStasjon)
        {
            try
            {
                DBStasjon stasjon = _db.Strekning.FirstOrDefault(s => s.SId == innStasjon.SId);

                if (stasjon == null)
                {
                    return(false);
                }

                stasjon.Stasjon = innStasjon.StasjonNavn;

                if (_db.Strekning.Any(s => s.Stasjon == innStasjon.StasjonNavn))
                {
                    return(false);
                }

                var endring = new DBEndring()
                {
                    Tidspunkt        = DateTime.Now,
                    EndringOperasjon = "En stasjon har blitt endret: ",
                    Endring          = $"[{stasjon.SId}] {stasjon.Stasjon}"
                };

                _db.Endring.Add(endring);
                _db.Strekning.Update(stasjon);
                _db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når en stasjon skulle blitt endret", "DBStasjon:EndreStasjon", feil);
                return(false);
            }
        }
Пример #13
0
        public List <String> hentTidspunkt(String fraStasjon, String tilStasjon, String dato)
        {
            Stasjon FraStasjon = hentStasjon(fraStasjon);
            Stasjon TilStasjon = hentStasjon(tilStasjon);

            var FraBaner = new List <Bane>();

            foreach (Bane bane in db.Bane)
            {
                foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                {
                    if (stasjonPaaBane.Stasjon == FraStasjon)
                    {
                        FraBaner.Add(bane);
                    }
                }
            }

            var FraTilBaner = new List <Bane>();

            foreach (Bane bane in FraBaner)
            {
                foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                {
                    if (stasjonPaaBane.Stasjon == TilStasjon)
                    {
                        FraTilBaner.Add(bane);
                    }
                }
            }

            var Avgangstider = new List <String>();

            //Finner nåværende tidspunkt og konverter til double
            String naaTidspunktString = DateTime.Now.ToString("HH:mm");

            naaTidspunktString = naaTidspunktString.Replace(':', ',');

            //sjekker om nåværende tidspunkt kan konverteres til double, ellers setter den til 0
            double naaTidspunkt;

            if (!Double.TryParse(naaTidspunktString, out naaTidspunkt))
            {
                naaTidspunkt = 0.0;
            }

            //Finner dagens dato
            DateTime dagensDato = DateTime.Now.Date;

            //Konverterer valgt dato til DateTime
            DateTime valgDato = DateTime.Parse(dato);


            //Sammenligner dagens dato med valgt dato. Valgt dato skal aldri være lavere enn dagens dato
            int sammenligning = DateTime.Compare(valgDato, dagensDato);

            //Hvis valgt dato er senere enn dagens dato, lister ut alle tidspunkt
            if (sammenligning > 0)
            {
                foreach (Bane bane in FraTilBaner)
                {
                    foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                    {
                        if (stasjonPaaBane.Stasjon == FraStasjon)
                        {
                            if (!Avgangstider.Contains(stasjonPaaBane.Avgang))
                            {
                                Avgangstider.Add(stasjonPaaBane.Avgang);
                            }
                        }
                    }
                }
            }

            //Hvis dato valgt er samme som dagens dato, lister kun ut tidspunkt som ikke har vært
            if (sammenligning == 0)
            {
                foreach (Bane bane in FraTilBaner)
                {
                    foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                    {
                        if (stasjonPaaBane.Stasjon == FraStasjon)
                        {
                            //Finner avgangstidene, sjekker om de kan konverteres til double og sammenligner med nåværede tidspunkt
                            String avgangsTidspunktString = stasjonPaaBane.Avgang;
                            avgangsTidspunktString = avgangsTidspunktString.Replace(':', ',');
                            double avgangsTidspunkt;
                            if (!Double.TryParse(avgangsTidspunktString, out avgangsTidspunkt))
                            {
                                avgangsTidspunkt = 0.0;
                            }
                            if (naaTidspunkt < avgangsTidspunkt)
                            {
                                if (!Avgangstider.Contains(stasjonPaaBane.Avgang))
                                {
                                    Avgangstider.Add(stasjonPaaBane.Avgang);
                                }
                            }
                        }
                    }
                }
            }
            return(Avgangstider);
        }
Пример #14
0
        public List <String> hentReturTidspunkt(String fraStasjon, String tilStasjon, string dato, string returDato, string avgang)
        {
            Stasjon FraStasjon = hentStasjon(fraStasjon);
            Stasjon TilStasjon = hentStasjon(tilStasjon);

            var FraBaner = new List <Bane>();

            foreach (Bane bane in db.Bane)
            {
                foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                {
                    if (stasjonPaaBane.Stasjon == FraStasjon)
                    {
                        FraBaner.Add(bane);
                    }
                }
            }

            var FraTilBaner = new List <Bane>();

            foreach (Bane bane in FraBaner)
            {
                foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                {
                    if (stasjonPaaBane.Stasjon == TilStasjon)
                    {
                        FraTilBaner.Add(bane);
                    }
                }
            }

            var Avgangstider = new List <String>();

            //Konverterer avgangstidspunkt til double
            String avgangsTidspunktString = avgang;

            avgangsTidspunktString = avgangsTidspunktString.Replace(':', ',');
            double avgangstidspunkt;

            if (!Double.TryParse(avgangsTidspunktString, out avgangstidspunkt))
            {
                avgangstidspunkt = 0.0;
            }

            //Konverterer avgangsdato til Datetime
            DateTime avgangsDato = DateTime.Parse(dato);

            //Konverterer returdato til DateTime
            DateTime returdato = DateTime.Parse(returDato);


            //Sammenligner dagens dato med valgt dato. Returdato skal aldri være lavere enn avgangsdato
            int sammenligning = DateTime.Compare(returdato, avgangsDato);

            //Hvis valgt dato er senere enn dagens dato, lister ut alle tidspunkt
            if (sammenligning > 0)
            {
                foreach (Bane bane in FraTilBaner)
                {
                    foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                    {
                        if (stasjonPaaBane.Stasjon == FraStasjon)
                        {
                            if (!Avgangstider.Contains(stasjonPaaBane.Avgang))
                            {
                                Avgangstider.Add(stasjonPaaBane.Avgang);
                            }
                        }
                    }
                }
            }

            //Hvis avgangsdato og returdato er like, lister kun ut tidspunkt som er senere enn avgangstiden
            if (sammenligning == 0)
            {
                foreach (Bane bane in FraTilBaner)
                {
                    foreach (StasjonPaaBane stasjonPaaBane in bane.StasjonPaaBane)
                    {
                        if (stasjonPaaBane.Stasjon == FraStasjon)
                        {
                            //Finner avgangstidene, sjekker om de kan konverteres til double og sammenligner med avgangtiden
                            String returAvgangstidspunktString = stasjonPaaBane.Avgang;
                            returAvgangstidspunktString = returAvgangstidspunktString.Replace(':', ',');
                            double returAvgangstidspunkt;
                            if (!Double.TryParse(returAvgangstidspunktString, out returAvgangstidspunkt))
                            {
                                returAvgangstidspunkt = 0.0;
                            }
                            if (avgangstidspunkt < returAvgangstidspunkt)
                            {
                                if (!Avgangstider.Contains(stasjonPaaBane.Avgang))
                                {
                                    Avgangstider.Add(stasjonPaaBane.Avgang);
                                }
                            }
                        }
                    }
                }
            }
            return(Avgangstider);
        }
Пример #15
0
        protected override void Seed(DB context)
        {
            // Oppretter stasjoner

            var OsloS = new Stasjon
            {
                Stasjonsnavn = "Oslo S"
            };
            var Nationalteateret = new Stasjon
            {
                Stasjonsnavn = "Nationalteateret"
            };
            var Skoyen = new Stasjon
            {
                Stasjonsnavn = "Skøyen"
            };
            var Asker = new Stasjon
            {
                Stasjonsnavn = "Asker"
            };
            var Lillestrom = new Stasjon
            {
                Stasjonsnavn = "Lillestrøm"
            };
            var Gardermoen = new Stasjon
            {
                Stasjonsnavn = "Gardermoen"
            };
            var Fredrikstad = new Stasjon
            {
                Stasjonsnavn = "Fredrikstad"
            };
            var Jessheim = new Stasjon
            {
                Stasjonsnavn = "Jessheim"
            };
            var Stavanger = new Stasjon
            {
                Stasjonsnavn = "Stavanger"
            };

            // Oppretter Banene

            var L1 = new Bane
            {
                Banenavn       = "L1",
                StasjonPaaBane = new List <StasjonPaaBane>()
            };

            var R10 = new Bane
            {
                Banenavn       = "R10",
                StasjonPaaBane = new List <StasjonPaaBane>()
            };

            var R20 = new Bane
            {
                Banenavn       = "R20",
                StasjonPaaBane = new List <StasjonPaaBane>()
            };

            var S20 = new Bane
            {
                Banenavn       = "Sørlandsbanen",
                StasjonPaaBane = new List <StasjonPaaBane>()
            };



            //---------------- Her opprettes StasjonPaaBane objekt på bane L1--------------------

            var OslosL1kl12 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = L1,
                Avgang  = "12:00"
            };

            var OslosL1kl14 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = L1,
                Avgang  = "14:00"
            };


            var NationalL1kl12 = new StasjonPaaBane
            {
                Stasjon = Nationalteateret,
                Bane    = L1,
                Avgang  = "12:05"
            };

            var NationalL1kl14 = new StasjonPaaBane
            {
                Stasjon = Nationalteateret,
                Bane    = L1,
                Avgang  = "14:05"
            };

            var SkoyenL1kl12 = new StasjonPaaBane
            {
                Stasjon = Skoyen,
                Bane    = L1,
                Avgang  = "12:15"
            };

            var SkoyenL1kl14 = new StasjonPaaBane
            {
                Stasjon = Skoyen,
                Bane    = L1,
                Avgang  = "14:15"
            };

            var AskerL1kl12 = new StasjonPaaBane
            {
                Stasjon = Skoyen,
                Bane    = L1,
                Avgang  = "12:25"
            };

            var AskerL1kl14 = new StasjonPaaBane
            {
                Stasjon = Skoyen,
                Bane    = L1,
                Avgang  = "14:25"
            };

            //Legger til stasjonene i L1
            L1.StasjonPaaBane.Add(OslosL1kl12);
            L1.StasjonPaaBane.Add(OslosL1kl14);
            L1.StasjonPaaBane.Add(NationalL1kl12);
            L1.StasjonPaaBane.Add(NationalL1kl14);
            L1.StasjonPaaBane.Add(SkoyenL1kl12);
            L1.StasjonPaaBane.Add(SkoyenL1kl14);
            L1.StasjonPaaBane.Add(AskerL1kl12);
            L1.StasjonPaaBane.Add(AskerL1kl14);


            // --------------------------Oppretter Sørlandsbanen S20 --------------------

            var OslosS20kl1430 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = S20,
                Avgang  = "14:30"
            };

            var OslosS20kl19 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = S20,
                Avgang  = "19:00"
            };


            var StavS20kl08 = new StasjonPaaBane
            {
                Stasjon = Stavanger,
                Bane    = S20,
                Avgang  = "08:00"
            };

            var StavS20kl16 = new StasjonPaaBane
            {
                Stasjon = Stavanger,
                Bane    = S20,
                Avgang  = "16:00"
            };

            var AskerS20kl0830 = new StasjonPaaBane
            {
                Stasjon = Asker,
                Bane    = S20,
                Avgang  = "08:30"
            };

            var AskerS20kl1930 = new StasjonPaaBane
            {
                Stasjon = Asker,
                Bane    = S20,
                Avgang  = "19:30"
            };

            S20.StasjonPaaBane.Add(OslosS20kl1430);
            S20.StasjonPaaBane.Add(OslosS20kl19);
            S20.StasjonPaaBane.Add(StavS20kl08);
            S20.StasjonPaaBane.Add(StavS20kl16);
            S20.StasjonPaaBane.Add(AskerS20kl0830);
            S20.StasjonPaaBane.Add(AskerS20kl1930);

            // -----------------------------Bane  R10 --------------------------------------
            var OslosR10kl10 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = R10,
                Avgang  = "10:00"
            };

            var OslosR10kl13 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = R10,
                Avgang  = "13:00"
            };

            var JessR10kl11 = new StasjonPaaBane
            {
                Stasjon = Jessheim,
                Bane    = R10,
                Avgang  = "11:00"
            };

            var JessR10kl14 = new StasjonPaaBane
            {
                Stasjon = Jessheim,
                Bane    = R10,
                Avgang  = "14:00"
            };

            var GarR10kl1130 = new StasjonPaaBane
            {
                Stasjon = Gardermoen,
                Bane    = R10,
                Avgang  = "11:30"
            };

            var GarR10kl1430 = new StasjonPaaBane
            {
                Stasjon = Gardermoen,
                Bane    = R10,
                Avgang  = "14:30"
            };

            // R10 Bane med stasjoner

            R10.StasjonPaaBane.Add(OslosR10kl10);
            R10.StasjonPaaBane.Add(OslosR10kl13);
            R10.StasjonPaaBane.Add(JessR10kl11);
            R10.StasjonPaaBane.Add(JessR10kl14);
            R10.StasjonPaaBane.Add(GarR10kl1130);
            R10.StasjonPaaBane.Add(GarR10kl1430);

            // -----------------------------Bane  R20 --------------------------------------


            var OslosR20kl17 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = R20,
                Avgang  = "17:00"
            };

            var OslosR20kl19 = new StasjonPaaBane
            {
                Stasjon = OsloS,
                Bane    = R20,
                Avgang  = "19:00"
            };

            var FredR20kl18 = new StasjonPaaBane
            {
                Stasjon = Fredrikstad,
                Bane    = R20,
                Avgang  = "18:00"
            };

            var FredR20kl20 = new StasjonPaaBane
            {
                Stasjon = Fredrikstad,
                Bane    = R20,
                Avgang  = "20:00"
            };

            var GarR20kl16 = new StasjonPaaBane
            {
                Stasjon = Gardermoen,
                Bane    = R20,
                Avgang  = "16:00"
            };

            var GarR20kl18 = new StasjonPaaBane
            {
                Stasjon = Gardermoen,
                Bane    = R20,
                Avgang  = "18:00"
            };

            R20.StasjonPaaBane.Add(OslosR20kl17);
            R20.StasjonPaaBane.Add(OslosR20kl19);
            R20.StasjonPaaBane.Add(FredR20kl18);
            R20.StasjonPaaBane.Add(FredR20kl20);
            R20.StasjonPaaBane.Add(GarR20kl16);
            R20.StasjonPaaBane.Add(GarR20kl18);

            // ---------------------Legger til adminBruker -----------------------------------
            var    db            = new AdminDBmetoder();
            var    brukernavn    = "Admin";
            var    passord       = "Admin";
            string salt          = db.lagSalt();
            var    passordOgSalt = passord + salt;

            byte[] passordDB = db.lagHash(passordOgSalt);

            var adminBruker = new dbBruker
            {
                Brukernavn = brukernavn,
                Passord    = passordDB,
                Salt       = salt
            };

            // ---------------------- Legger til context i db ---------------------------------
            context.dbBruker.Add(adminBruker);
            context.Bane.Add(L1);
            context.Bane.Add(S20);
            context.Bane.Add(R10);
            context.Bane.Add(R20);
            base.Seed(context);
        }