Ejemplo n.º 1
0
        public async Task <bool> Lagre(Kunde innKunde)
        {
            try
            {
                var nyKundeRad = new Kunder();
                nyKundeRad.Fornavn   = innKunde.Fornavn;
                nyKundeRad.Etternavn = innKunde.Etternavn;
                nyKundeRad.Adresse   = innKunde.Adresse;

                var sjekkPostnr = await _db.Poststeder.FindAsync(innKunde.Postnr);

                if (sjekkPostnr == null)
                {
                    var poststedsRad = new Poststeder();
                    poststedsRad.Postnr   = innKunde.Postnr;
                    poststedsRad.Poststed = innKunde.Poststed;
                    nyKundeRad.Poststed   = poststedsRad;
                }
                else
                {
                    nyKundeRad.Poststed = sjekkPostnr;
                }
                _db.Kunder.Add(nyKundeRad);
                await _db.SaveChangesAsync();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        public bool insertPoststed(Poststed innPoststed)
        {
            var nyPoststed = new Poststeder()
            {
                Postnr   = innPoststed.postnr,
                Poststed = innPoststed.poststed,
            };

            var db = new DBContext();

            try
            {
                var postnrExists = db.Poststeder.Find(innPoststed.postnr);
                if (postnrExists == null)
                {
                    var nyttPoststed = new Poststeder()
                    {
                        Postnr   = innPoststed.postnr,
                        Poststed = innPoststed.poststed
                    };
                }

                db.Poststeder.Add(nyPoststed);
                db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                return(false);
            }
        }
        public bool settInn(Kunde innKunde)
        {
            var nyKunde = new Kunder()
            {
                Fornavn   = innKunde.fornavn,
                Etternavn = innKunde.etternavn,
                Adresse   = innKunde.adresse,
                Postnr    = innKunde.postnr
            };

            var db = new KundeContext();

            try
            {
                var eksistererPostnr = db.Poststeder.Find(innKunde.postnr);

                if (eksistererPostnr == null)
                {
                    var nyttPoststed = new Poststeder()
                    {
                        Postnr   = innKunde.postnr,
                        Poststed = innKunde.poststed
                    };
                    nyKunde.Poststeder = nyttPoststed;
                }
                db.Kunder.Add(nyKunde);
                db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                return(false);
            }
        }
Ejemplo n.º 4
0
        public async Task <bool> Endre(Kunde endreKunde)
        {
            try
            {
                var endreObjekt = await _db.Kunder.FindAsync(endreKunde.Id);

                if (endreObjekt.Poststed.Postnr != endreKunde.Postnr)
                {
                    var sjekkPostnr = _db.Poststeder.Find(endreKunde.Postnr);
                    if (sjekkPostnr == null)
                    {
                        var poststedsRad = new Poststeder();
                        poststedsRad.Postnr   = endreKunde.Postnr;
                        poststedsRad.Poststed = endreKunde.Poststed;
                        endreObjekt.Poststed  = poststedsRad;
                    }
                    else
                    {
                        endreObjekt.Poststed.Postnr = endreKunde.Postnr;
                    }
                }
                endreObjekt.Fornavn   = endreKunde.Fornavn;
                endreObjekt.Etternavn = endreKunde.Etternavn;
                endreObjekt.Adresse   = endreKunde.Adresse;
                await _db.SaveChangesAsync();
            }
            catch
            {
                return(false);
            }
            return(true);
        }
        public async Task <bool> Endre(Kunde endreKunde)
        {
            try
            {
                /**
                 * Så må vi finne ut om postnr er endret, altså om innkunden er forskjellig
                 * fra kunden man har funnet. Hvis den er det så må man gjøre noe med
                 * poststeds-tabellen
                 **/
                Kunder enKunde = await _db.Kunder.FindAsync(endreKunde.Id);

                if (enKunde.Poststed.Postnr != endreKunde.Postnr)
                {
                    var sjekkPoststed = _db.Poststeder.Find(endreKunde.Postnr);
                    if (sjekkPoststed == null)
                    {
                        var nyPoststedsRad = new Poststeder();
                        nyPoststedsRad.Postnr   = endreKunde.Postnr;
                        nyPoststedsRad.Poststed = endreKunde.Poststed;
                        enKunde.Poststed        = nyPoststedsRad;
                    }
                    else
                    {
                        enKunde.Poststed = sjekkPoststed;
                    }
                }

                /**
                 * Hvis poststedet ikke er flyttet så skal vi flytte de andre
                 * attributtene over.
                 *
                 * Under oppdaterer vi enKunde i databasen til å få verdiene inn fra
                 * endreKunde, altså modellen/det vi får inn fra klienten.
                 * Det var det som skulle til for å kjøre denne løsningen på server.
                 **/
                enKunde.Fornavn   = endreKunde.Fornavn;
                enKunde.Etternavn = endreKunde.Etternavn;
                enKunde.Adresse   = endreKunde.Adresse;
                await _db.SaveChangesAsync();
            }
            catch
            {
                return(false);
            }
            return(true);
        }
        /**
         * Lagre metoden blir mer komplisert når på 3. normalform fordi vi må forholde
         * oss til den kunden som kommer inn her (som er den flate kunden), den kunden som
         * ikke ligger sammen med context klassen, men den som ligger for seg selv.
         * Vi må omforme de attributtene som kommer inn i innKunde til den strukturen i
         * tabellene i context klassen hvor de er hver for seg.
         **/
        public async Task <bool> Lagre(Kunde innKunde)
        {
            try
            {
                var nyKundeRad = new Kunder();             //lager ny kunderad, må ta new på kunder, altså db-klassen
                nyKundeRad.Fornavn   = innKunde.Fornavn;   //må overføre attributtene som skal til inn i kunden fra innKunde
                nyKundeRad.Etternavn = innKunde.Etternavn; //tar ikke id når vi skal lagre, men begynner med fornavnet.
                nyKundeRad.Adresse   = innKunde.Adresse;   //det er disse tre som skal inn i kunden

                /**
                 * Så må vi sjekke om postnr eksisterer i db fra før av. Hvis det ikke gjør det så opprettes det
                 * et nytt poststedsobjekt og så legges det inn i kunden. Kunne ha lagt inn alle poststeder og nr fra
                 * hele landet på forhånd og da ville ikke lagringen vært så komplisert, men dette
                 * gjøres for å illustrere.
                 *
                 * Sjekker først om poststedet finnes (bruker FindAsync). Og nøkkelen til denne
                 * er innKunde.Postnr. Den returnerer enten poststedet eller null.
                 **/
                var sjekkPoststed = await _db.Poststeder.FindAsync(innKunde.Postnr);

                if (sjekkPoststed == null)                     //hvis poststedet ikke fantes
                {
                    var nyPoststedsRad = new Poststeder();     //da oppretter vi en ny poststedsrad
                    nyPoststedsRad.Postnr   = innKunde.Postnr; //så legger vi inn de to parameterne fra innKunde
                    nyPoststedsRad.Poststed = innKunde.Poststed;
                    nyKundeRad.Poststed     = nyPoststedsRad;  //legger inn poststedet (poststedsRad) inn i ny nyKundeRad. Da er poststedet lagt inn i kunden.
                }
                else
                {
                    nyKundeRad.Poststed = sjekkPoststed;
                }
                _db.Kunder.Add(nyKundeRad);
                await _db.SaveChangesAsync();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 7
0
        public bool deletePoststed(string slettId)
        {
            var    db             = new DBContext();
            Kunder funnetPoststed = db.Kunder.FirstOrDefault(p => p.Postnr == slettId);

            if (funnetPoststed == null)
            {
                try
                {
                    Poststeder slettPoststed = db.Poststeder.Find(slettId);
                    db.Poststeder.Remove(slettPoststed);
                    db.SaveChanges();
                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            }
            return(false);
        }
Ejemplo n.º 8
0
        public bool changeCustomer(int id, Kunde innKunde)
        {
            var db = new DBContext();

            try
            {
                Kunder endreKunde = db.Kunder.Find(id);
                endreKunde.Fornavn   = innKunde.fornavn;
                endreKunde.Etternavn = innKunde.etternavn;
                endreKunde.Telefonnr = innKunde.telefonnr;
                endreKunde.Adresse   = innKunde.adresse;
                if (endreKunde.Postnr != innKunde.postnr)
                {
                    //Postnummer er endret, må sjekke om det nye eksisterer
                    Poststeder existPoststed = db.Poststeder.FirstOrDefault(p => p.Postnr == innKunde.postnr);
                    if (existPoststed == null)
                    {
                        //poststedet eksisterer ikke
                        var nyttPoststed = new Poststeder()
                        {
                            Postnr   = innKunde.postnr,
                            Poststed = innKunde.poststed
                        };
                        db.Poststeder.Add(nyttPoststed);
                    }
                    else
                    {
                        //poststedet med det nye postnr existerer, endre bare postnr.
                        endreKunde.Poststeder = existPoststed;
                    }
                }
                ;
                db.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 9
0
        public bool insertCustomer(Kunde innKunde)
        {
            var nyKunde = new Kunder()
            {
                Fornavn   = innKunde.fornavn,
                Etternavn = innKunde.etternavn,
                Adresse   = innKunde.adresse,
                Postnr    = innKunde.postnr,
                Telefonnr = innKunde.telefonnr,
                Epost     = innKunde.epost,
                Password  = hashPword(innKunde.passord)
            };

            var db = new DBContext();

            try
            {
                var postnrExists = db.Poststeder.Find(innKunde.postnr);
                if (postnrExists == null)
                {
                    var nyttPoststed = new Poststeder()
                    {
                        Postnr   = innKunde.postnr,
                        Poststed = innKunde.poststed
                    };
                    nyKunde.Poststeder = nyttPoststed;
                }
                else
                {
                    nyKunde.Poststeder = postnrExists;
                }
                db.Kunder.Add(nyKunde);
                db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                return(false);
            }
        }
        public bool endreKunde(int id, Kunde innKunde)
        {
            var db = new KundeContext();

            try
            {
                Kunder endreKunde = db.Kunder.Find(id);
                endreKunde.Fornavn   = innKunde.fornavn;
                endreKunde.Etternavn = innKunde.etternavn;
                endreKunde.Adresse   = innKunde.adresse;
                if (endreKunde.Postnr != innKunde.postnr)
                {
                    // Postnummeret er endret. Må først sjekke om det nye postnummeret eksisterer i tabellen.
                    Poststeder eksisterendePoststed = db.Poststeder.FirstOrDefault(p => p.Postnr == innKunde.postnr);
                    if (eksisterendePoststed == null)
                    {
                        // poststedet eksisterer ikke, må legges inn
                        var nyttPoststed = new Poststeder()
                        {
                            Postnr   = innKunde.postnr,
                            Poststed = innKunde.poststed
                        };
                        db.Poststeder.Add(nyttPoststed);
                    }
                    else
                    {   // poststedet med det nye postnr eksisterer, endre bare postnummeret til kunden
                        endreKunde.Postnr = innKunde.postnr;
                    }
                }
                ;
                db.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }