public bool slettKunde(int slettId)
        {
            var db       = new KundeContext();
            var database = new BokerContext();

            try
            {
                dbKunde slettKunde = db.Kunder.Find(slettId);

                var bestillinger = database.Bestillinger.Where(c => c.KundeId == slettKunde.Epost);

                foreach (var u in bestillinger)
                {
                    database.Bestillinger.Remove(u);
                }

                database.SaveChanges();
                db.Kunder.Remove(slettKunde);
                db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return(false);
            }
        }
        public Kunde hentEnKunde(int id)
        {
            var db = new KundeContext();

            try
            {
                var enDbKunde = db.Kunder.Find(id);

                if (enDbKunde == null)
                {
                    return(null);
                }
                else
                {
                    var utKunde = new Kunde()
                    {
                        id        = enDbKunde.Id,
                        fornavn   = enDbKunde.Fornavn,
                        etternavn = enDbKunde.Etternavn,
                        adresse   = enDbKunde.Adresse,
                        postnr    = enDbKunde.Poststed.Postnr,
                        poststed  = enDbKunde.Poststed.Poststed
                    };
                    return(utKunde);
                }
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return(null);
            }
        }
        public bool endreKunde(int id, Kunde innKunde)
        {
            KundeContext kundeDatabase = new KundeContext();

            try
            {
                var kundeSomSkalEndres = kundeDatabase.Kunder.FirstOrDefault(p => p.Id == innKunde.id);

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

                kundeSomSkalEndres.Fornavn   = innKunde.fornavn;
                kundeSomSkalEndres.Etternavn = innKunde.etternavn;
                kundeSomSkalEndres.Adresse   = innKunde.adresse;

                string innPostnr = innKunde.postnr;

                var funnetPostSted = kundeDatabase.Poststeder.FirstOrDefault(p => p.Postnr == innPostnr);

                if (funnetPostSted == null) // fant ikke poststed, må legge inn et nytt
                {
                    var nyttPoststed = new PostSted();
                    nyttPoststed.Postnr   = innKunde.postnr;
                    nyttPoststed.Poststed = innKunde.poststed;
                    kundeDatabase.Poststeder.Add(nyttPoststed);
                    // det nye poststedet legges i den nye brukeren
                    kundeSomSkalEndres.Poststed = nyttPoststed;
                }
                else
                { // fant poststedet, legger det inn i den nye brukeren
                    kundeSomSkalEndres.Poststed = funnetPostSted;
                }

                kundeDatabase.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return(false);
            }
        }
        public List <Bestilling> hentAlleOrdre(int id)
        {
            var kundeDatabase = new KundeContext();

            try
            {
                var db = new BokerContext();

                dbKunde kunde = kundeDatabase.Kunder.Find(id);

                var kundesOrdre = db.Bestillinger.Include("BestillingsDetaljer").Where(b => b.KundeId == kunde.Epost).ToList();

                return(kundesOrdre);
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return(null);
            }
        }
        public List <Kunde> hentAlle()
        {
            var db = new KundeContext();

            try
            {
                List <Kunde> alleKunder = db.Kunder.Select(k => new Kunde()
                {
                    id        = k.Id,
                    fornavn   = k.Fornavn,
                    etternavn = k.Etternavn,
                    adresse   = k.Adresse,
                    postnr    = k.Poststed.Postnr,
                    poststed  = k.Poststed.Poststed
                }).ToList();

                return(alleKunder);
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return(null);
            }
        }
        public bool slettKunde(int slettId)
        {
            var db = new KundeContext();
            var database = new BokerContext();
            try
            {
                dbKunde slettKunde = db.Kunder.Find(slettId);

                var bestillinger = database.Bestillinger.Where(c => c.KundeId == slettKunde.Epost);

                foreach (var u in bestillinger)
                {
                    database.Bestillinger.Remove(u);
                }

                database.SaveChanges();
                db.Kunder.Remove(slettKunde);
                db.SaveChanges();
                return true;
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return false;
            }
        }
        public Kunde hentEnKunde(int id)
        {
            var db = new KundeContext();

            try
            {
                var enDbKunde = db.Kunder.Find(id);

                if (enDbKunde == null)
                {
                    return null;
                }
                else
                {
                    var utKunde = new Kunde()
                    {
                        id = enDbKunde.Id,
                        fornavn = enDbKunde.Fornavn,
                        etternavn = enDbKunde.Etternavn,
                        adresse = enDbKunde.Adresse,
                        postnr = enDbKunde.Poststed.Postnr,
                        poststed = enDbKunde.Poststed.Poststed
                    };
                    return utKunde;
                }
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return null;
            }
        }
        public List<Bestilling> hentAlleOrdre(int id)
        {
            var kundeDatabase = new KundeContext();
            try
            {
                var db = new BokerContext();

                dbKunde kunde = kundeDatabase.Kunder.Find(id);

                var kundesOrdre = db.Bestillinger.Include("BestillingsDetaljer").Where(b => b.KundeId == kunde.Epost).ToList();

                return kundesOrdre;
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return null;
            }
        }
        public List<Kunde> hentAlle()
        {
            var db = new KundeContext();
            try
            {
                List<Kunde> alleKunder = db.Kunder.Select(k => new Kunde()
                {
                    id = k.Id,
                    fornavn = k.Fornavn,
                    etternavn = k.Etternavn,
                    adresse = k.Adresse,
                    postnr = k.Poststed.Postnr,
                    poststed = k.Poststed.Poststed

                }).ToList();

                return alleKunder;
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return null;
            }
        }
        public bool endreKunde(int id, Kunde innKunde)
        {
            KundeContext kundeDatabase = new KundeContext();

            try
            {
                var kundeSomSkalEndres = kundeDatabase.Kunder.FirstOrDefault(p => p.Id == innKunde.id);

                if (kundeSomSkalEndres == null)
                    return false;

                kundeSomSkalEndres.Fornavn = innKunde.fornavn;
                kundeSomSkalEndres.Etternavn = innKunde.etternavn;
                kundeSomSkalEndres.Adresse = innKunde.adresse;

                string innPostnr = innKunde.postnr;

                var funnetPostSted = kundeDatabase.Poststeder.FirstOrDefault(p => p.Postnr == innPostnr);

                if (funnetPostSted == null) // fant ikke poststed, må legge inn et nytt
                {
                    var nyttPoststed = new PostSted();
                    nyttPoststed.Postnr = innKunde.postnr;
                    nyttPoststed.Poststed = innKunde.poststed;
                    kundeDatabase.Poststeder.Add(nyttPoststed);
                    // det nye poststedet legges i den nye brukeren
                    kundeSomSkalEndres.Poststed = nyttPoststed;

                }
                else
                { // fant poststedet, legger det inn i den nye brukeren
                    kundeSomSkalEndres.Poststed = funnetPostSted;
                }

                kundeDatabase.SaveChanges();
                return true;
            }
            catch (Exception feil)
            {
                skrivTilFil(feil);
                return false;
            }
        }