public bool slettKunde(int slettID)
        {
            using (var db = new AirlineDbContext())
            {
                try
                {
                    Kunde         slettKunde     = db.Kunder.Find(slettID);
                    List <Handel> kundensHandler = db.Handler.Where(k => k.Kunde.KundeId == slettKunde.KundeId).ToList();
                    foreach (var kh in kundensHandler)
                    {
                        List <Billett> billetterListe = db.Billetter.Where(b => b.Handel.HandelId == kh.HandelId).ToList();
                        foreach (var b in billetterListe)
                        {
                            db.Billetter.Remove(b);
                        }
                        db.Handler.Remove(kh);
                    }
                    db.Kunder.Remove(slettKunde);
                    //Logge endringer gjort i DB
                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Kunde er slettet. ID: " + slettID.ToString() + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        public bool endreBillett(int id, BestillingBilletter nyBillData)
        {
            using (var db = new AirlineDbContext())
            {
                try
                {
                    Billett eksisterendeBillett = db.Billetter.Find(id);
                    eksisterendeBillett.PassasjerFornavn   = nyBillData.PassasjerFornavn;
                    eksisterendeBillett.PassasjerEtternavn = nyBillData.PassasjerEtternavn;

                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Bestilling er endret i DB til: " + eksisterendeBillett.BillettId + " " + eksisterendeBillett.PassasjerFornavn + " til " + eksisterendeBillett.PassasjerEtternavn + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        public bool slettBillett(int slettId)
        {
            using (var db = new AirlineDbContext())
            {
                try
                {
                    Billett slettBillett = db.Billetter.Find(slettId);
                    Handel  bestilling   = slettBillett.Handel;

                    bestilling.TotalPris -= slettBillett.Reise.Pris;

                    db.Billetter.Remove(slettBillett);
                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Billett er slettet. ID: " + slettId.ToString() + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        public bool slettBestilling(int slettId)
        {
            using (var db = new AirlineDbContext())
            {
                try
                {
                    Handel         slettHandel    = db.Handler.Find(slettId);
                    List <Billett> slettBilletter = db.Handler.Find(slettId).Billetter.ToList();
                    foreach (var billett in slettBilletter)
                    {
                        db.Billetter.Remove(billett);
                    }
                    db.Handler.Remove(slettHandel);
                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Handel er slettet. ID: " + slettId.ToString() + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        public bool endreReise(int id, ReiseReg nyReiseData)
        {
            using (var db = new AirlineDbContext())
            {
                DateTime AvreiseInn  = nyReiseData.Avreise.Add(nyReiseData.AvreiseTid.TimeOfDay);
                DateTime AnkomstInn  = nyReiseData.Ankomst.Add(nyReiseData.AnkomstTid.TimeOfDay);
                String   innReisetid = "";

                if (AvreiseInn > AnkomstInn)
                {
                    return(false);
                }

                double Reisetid = AnkomstInn.Subtract(AvreiseInn).TotalMinutes;
                if (Reisetid < 60)
                {
                    innReisetid = Reisetid.ToString() + " minutter";
                }
                else
                {
                    double minutter = Reisetid % 60;
                    int    timer    = System.Convert.ToInt32(System.Math.Floor(Reisetid / 60));

                    if (minutter > 0)
                    {
                        innReisetid = timer.ToString() + " time(r) og " + minutter.ToString() + " minutter";
                    }
                    else
                    {
                        innReisetid = timer.ToString() + " time(r)";
                    }
                }
                try
                {
                    Reise eksisterendeReise = db.Reiser.Find(id);
                    eksisterendeReise.Ankomst   = AnkomstInn;
                    eksisterendeReise.Avreise   = AvreiseInn;
                    eksisterendeReise.Fra       = nyReiseData.Fra;
                    eksisterendeReise.Til       = nyReiseData.Destinasjon;
                    eksisterendeReise.Pris      = nyReiseData.Pris;
                    eksisterendeReise.Kapasitet = nyReiseData.Kapasitet;
                    eksisterendeReise.Varighet  = innReisetid;

                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Kunde er endret i DB: " + eksisterendeReise.ReiseId + " " + eksisterendeReise.Fra + " til " + eksisterendeReise.Til + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        public bool slettReise(int slettId)
        {
            using (var db = new AirlineDbContext())
            {
                try
                {
                    Reise          slettReise = db.Reiser.Find(slettId);
                    List <Billett> billetter  = db.Billetter.Where(b => b.Reise.ReiseId == slettReise.ReiseId).ToList();
                    List <Handel>  handler    = new List <Handel>();
                    foreach (var b in billetter)
                    {
                        Handel handel = db.Handler.Find(b.Handel.HandelId);
                        handler.Add(handel);
                    }

                    List <Handel> rensetHandler = handler.GroupBy(i => i.HandelId).Select(g => g.First()).ToList();

                    foreach (var rh in rensetHandler)
                    {
                        List <Billett> rBillett = db.Billetter.Where(b => b.Handel.HandelId == rh.HandelId).ToList();
                        foreach (var rB in rBillett)
                        {
                            db.Billetter.Remove(rB);
                        }
                        db.Handler.Remove(rh);
                    }


                    db.Reiser.Remove(slettReise);
                    //Logge endringer gjort i DB
                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Reise er slettet. ID: " + slettId.ToString() + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        public bool endreKunde(int id, KundeView nyKundeData)
        {
            using (var db = new AirlineDbContext())
            {
                try
                {
                    Kunde eksisterendeKunde = db.Kunder.Find(id);
                    eksisterendeKunde.Adresse   = nyKundeData.Adresse;
                    eksisterendeKunde.Epost     = nyKundeData.Epost;
                    eksisterendeKunde.Etternavn = nyKundeData.Etternavn;
                    eksisterendeKunde.Fornavn   = nyKundeData.Fornavn;
                    eksisterendeKunde.Telefon   = nyKundeData.Telefon;

                    var postSted = db.PostSted.Find(nyKundeData.PostNr);
                    if (postSted == null)
                    {
                        PostSted nyttPoststed = new PostSted();
                        nyttPoststed.PostNr = nyKundeData.PostNr;
                        nyttPoststed.Sted   = nyKundeData.PostSted;

                        db.PostSted.Add(nyttPoststed);
                        eksisterendeKunde.PostSted = nyttPoststed;
                    }
                    else
                    {
                        eksisterendeKunde.PostSted = postSted;
                    }

                    db.SaveChanges();

                    string innTilFil = DateTime.Now.ToString() + "Kunde er endret i DB: " + eksisterendeKunde.KundeId + " " + eksisterendeKunde.Etternavn + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);

                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }
        //REISE
        public bool RegistrerReise(ReiseReg innReise)
        {
            DateTime AvreiseInn  = innReise.Avreise.Add(innReise.AvreiseTid.TimeOfDay);
            DateTime AnkomstInn  = innReise.Ankomst.Add(innReise.AnkomstTid.TimeOfDay);
            String   innReisetid = "";

            if (AvreiseInn > AnkomstInn)
            {
                return(false);
            }

            double Reisetid = AnkomstInn.Subtract(AvreiseInn).TotalMinutes;

            if (Reisetid < 60)
            {
                innReisetid = Reisetid.ToString() + " minutter";
            }
            else
            {
                double minutter = Reisetid % 60;
                int    timer    = System.Convert.ToInt32(System.Math.Floor(Reisetid / 60));

                if (minutter > 0)
                {
                    innReisetid = timer.ToString() + " time(r) og " + minutter.ToString() + " minutter";
                }
                else
                {
                    innReisetid = timer.ToString() + " time(r)";
                }
            }

            using (var db = new AirlineDbContext())
            {
                try
                {
                    var nyReise = new Reise
                    {
                        Fra       = innReise.Fra,
                        Til       = innReise.Destinasjon,
                        Avreise   = AvreiseInn,
                        Ankomst   = AnkomstInn,
                        Varighet  = innReisetid,
                        Kapasitet = innReise.Kapasitet,
                        Pris      = innReise.Pris
                    };

                    string innTilFil = DateTime.Now.ToString() + "Ny reise er registrert i DB: " + nyReise.Fra + " " + nyReise.Til + " " + nyReise.Avreise + "\n\r";
                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), innTilFil);
                    db.Reiser.Add(nyReise);
                    db.SaveChanges();
                    return(true);
                }
                catch (Exception error)
                {
                    string feilmelding = DateTime.Now.ToString() + " " + error.ToString() + "\n\r";

                    File.AppendAllText(HttpContext.Current.Server.MapPath("~/Logger/Registreringer.txt"), feilmelding);
                    return(false);
                }
            }
        }