public void LeggInn(Bestilling bestilling) { using (var db = new DB()) { try { var dbbestilling = Mapper.Map <DBBestilling>(bestilling); var a = db.Entry(dbbestilling); List <DBKunde> kunder = new List <DBKunde>(); DBKunde dbKunde = new DBKunde(); foreach (var kunde in bestilling.Passasjerer) { dbKunde.LeggInn(kunde); var dkunde = db.Kunder.Include("Postnummer").Where(k => k.Etternavn == kunde.Etternavn && k.Fornavn == kunde.Fornavn && k.Tlf == kunde.Tlf).FirstOrDefault(); kunder.Add(dkunde); if (!db.Poststeder.Local.Any(e => e.Postnr == dkunde.Postnummer.Postnr)) { db.Entry(dkunde.Postnummer).State = EntityState.Unchanged; } } dbbestilling.Passasjerer = kunder; List <DBFlygning> flygninger = new List <DBFlygning>(); foreach (var flygning in dbbestilling.FlygningerTur) { flygninger.Add(db.Flygninger.Find(flygning.ID)); } dbbestilling.FlygningerTur = flygninger; flygninger = new List <DBFlygning>(); foreach (var flygning in dbbestilling.FlygningerRetur) { flygninger.Add(db.Flygninger.Find(flygning.ID)); } dbbestilling.FlygningerRetur = flygninger; db.Bestillinger.Add(dbbestilling); var endring = new DBEndring() { Tidspunkt = DateTime.Now, Endring = "La til bestilling: " + dbbestilling.Referanse }; db.Endringer.Add(endring); db.SaveChanges(); } catch (Exception e) { DALsetup.LogFeilTilFil("DBBestilling:LeggInn", e, "En feil oppsto når metoden prøvde å legge inn bestillingen i databasen."); } } }
public bool LeggInn(Kunde innKunde) { using (var db = new DB()) { try { DBKunde eksisterendeKunde = db.Kunder.Where(k => k.Etternavn == innKunde.Etternavn && k.Fornavn == innKunde.Fornavn && k.Tlf == innKunde.Tlf).FirstOrDefault(); if (eksisterendeKunde != null) { return(false); } DBKunde kunde = Mapper.Map <DBKunde>(innKunde); db.Kunder.Add(kunde); var poststed = db.Poststeder.Find(innKunde.Postnr); if (poststed == null) //Hvis postnummeret finnes attacher vi det med databasen. { kunde.Postnummer = new DBPostnummer { Postnr = innKunde.Postnr, Poststed = "" }; } else { kunde.Postnummer = poststed; db.Poststeder.Attach(poststed); } var endring = new DBEndring() { Tidspunkt = DateTime.Now, Endring = $"La til ny kunde: {kunde.Fornavn} {kunde.Etternavn}, {kunde.Adresse}, {kunde.Postnummer.Postnr} {kunde.Postnummer.Poststed}" }; db.Endringer.Add(endring); db.SaveChanges(); return(true); } catch (Exception e) { DALsetup.LogFeilTilFil("DBKunde:LeggInn", e, "En feil oppsto da metoden prøvde å legge inn ny kunde."); return(false); } } }