예제 #1
0
        public static Skoen hentEnSko(int skoId)
        {
            using (var db = new NettbutikkContext())
            {
                try
                {
                    Sko enSko = db.Sko.SingleOrDefault(s => s.SkoId == skoId);
                    if (enSko != null)
                    {
                        Skoen hentetSko = new Skoen()
                        {
                            skoId = enSko.SkoId,
                            navn = enSko.Navn,
                            kategori = enSko.Kategori.Navn,
                            merke = enSko.Merke.Navn,
                            forHvem = enSko.ForHvem.Navn,
                            pris = enSko.Pris.OrderByDescending(p => p.Dato).FirstOrDefault().Pris,
                            farge = enSko.Farge,
                            beskrivelse = enSko.Beskrivelse,
                            storlekar = enSko.Storlekar.Select(t => new Storlek()
                            {
                                storlekId = t.StorlekId,
                                storlek = t.Storlek,
                                antall = t.Antall
                            }).ToList(),
                            bilder = enSko.Bilder.Select(b => new Bilde()
                            {
                                bildeId = b.BildeId,
                                bildeUrl = b.BildeUrl
                            }).ToList()

                        };

                        return hentetSko;
                    }
                    else
                    {
                        return null;
                    }
                }
                catch (Exception feil)
                {
                    ErrorHandler.logError(feil);
                    return null;
                }
            }
        }
예제 #2
0
 public Skoen lagreSko(Skoen innsko)
 {
     return _repo.lagreSko(innsko);
 }
예제 #3
0
        public Skoen lagreSko(Skoen innsko)
        {
            using (var db = new NettbutikkContext())
            {
                try
                {
                    var nySko = new Sko {
                        Navn = innsko.navn,
                        Farge = innsko.farge,
                        Beskrivelse = innsko.beskrivelse,

                    };
                    var lagretSko = db.Sko.Add(nySko);
                    //Sjekk om merke eksisterer og legger til merke.
                    var eksistererMerke = db.Merker.SingleOrDefault(m => m.Navn == innsko.merke);
                    if(eksistererMerke == null)
                    {
                        var lagtTilMerke = db.Merker.Add(new Merker { Navn = innsko.merke });
                        lagretSko.Merke = lagtTilMerke;
                    }
                    else
                    {
                        lagretSko.Merke = eksistererMerke;
                    }

                    //Sjekk om kategori eksisterer og legger til kategori.
                    var eksistererKategori = db.Kategorier.SingleOrDefault(k => k.Navn == innsko.kategori);
                    if(eksistererKategori == null)
                    {
                        var lagtTilKategori = db.Kategorier.Add(new Kategorier { Navn = innsko.kategori });
                        lagretSko.Kategori = lagtTilKategori;
                    }
                    else
                    {
                        lagretSko.Kategori = eksistererKategori;
                    }

                    //Sjekk om ForHvem eksisterer og legger til ForHvem.
                    var eksistererFor = db.For.SingleOrDefault(f => f.Navn == innsko.forHvem);
                    if(eksistererFor == null)
                    {
                        var lagtTilFor = db.For.Add(new For { Navn = innsko.forHvem });
                        lagretSko.ForHvem = lagtTilFor;
                    }
                    else
                    {
                        lagretSko.ForHvem = eksistererFor;
                    }

                    //Legger til pris
                    db.Priser.Add(new Priser { Pris = innsko.pris, Sko = lagretSko, Dato = DateTime.Now });

                    db.SaveChanges();
                    var utSko = new Skoen
                    {
                        skoId = lagretSko.SkoId,
                        navn = lagretSko.Navn,
                        merke = lagretSko.Merke.Navn,
                        farge = lagretSko.Farge,
                        kategori = lagretSko.Kategori.Navn,
                        forHvem = lagretSko.ForHvem.Navn,
                        beskrivelse = lagretSko.Beskrivelse,
                        pris = lagretSko.Pris.OrderByDescending( p => p.Dato).FirstOrDefault().Pris
                    };
                    return utSko;

                }
                catch (Exception feil)
                {
                    DAL.ErrorHandler.logError(feil);
                    return null;
                }
            }
        }
예제 #4
0
        public Skoen slett(int id)
        {
            using(var db = new NettbutikkContext())
            {
                try
                {
                    var enSko = db.Sko.Find(id);
                    if (enSko == null)
                        return null;

                    enSko.Slettet = true;
                    var slettet =  new Skoen {
                        skoId = enSko.SkoId,
                        navn = enSko.Navn,
                        kategori = enSko.Kategori.Navn,
                        merke = enSko.Merke.Navn,
                        forHvem = enSko.ForHvem.Navn,
                        pris = enSko.Pris.OrderByDescending(p => p.Dato).FirstOrDefault().Pris,
                        farge = enSko.Farge,
                        beskrivelse = enSko.Beskrivelse,
                        storlekar = enSko.Storlekar.Select(t => new Storlek()
                        {
                            storlekId = t.StorlekId,
                            storlek = t.Storlek,
                            antall = t.Antall
                        }).ToList(),
                        bilder = enSko.Bilder.Select(b => new Bilde()
                        {
                            bildeId = b.BildeId,
                            bildeUrl = b.BildeUrl
                        }).ToList()
                    };
                    db.SaveChanges();

                    return slettet;
                }
                catch(Exception feil)
                {
                    DAL.ErrorHandler.logError(feil);
                    return null;
                }
            }
        }
 public ActionResult NySko(Skoen innSko)
 {
     if (ModelState.IsValid)
     {
         var lagretSko = _skoBLL.lagreSko(innSko);
         if (lagretSko != null)
         {
             return RedirectToAction("NySkoDel2", "SkoAdmin", lagretSko );
         }
         else
         {
             ViewData["lagreError"] = "Noe gikk galt! Skoen ble ikke lagret i databasen.";
         }
     }
     ViewData["merkeListe"] = _attributtBLL.getMerke();
     ViewData["kategoriListe"] = _attributtBLL.getKategorier();
     ViewData["forListe"] = _attributtBLL.getFor();
     return View();
 }
 public ActionResult NySkoDel2(Skoen innsko)
 {
     return View(innsko);
 }
        public void Detaljer_Ok_get()
        {
            //Arrange
            var controller = new SkoAdminController(new SkoBLL(new DbSkoStub()), new AttributtBLL(new DbAttributterStub()));
            var SessionMock = new TestControllerBuilder();
            SessionMock.InitializeController(controller);
            controller.Session["AdminLoggetInn"] = true;
            var forventetResultat = new Skoen
            {
                skoId = 1,
                navn = "B&CO 2455100311",
                beskrivelse = "Tøff B&CO damesko med lisser. Skoen er i tekstil med små metall nitter. Den har sort kantbånd rundt lisser stykket og langs kanten. Skoen er sort med brune flammer. Den har canvas dekksåle og canvas fôr. Gummisålen er tofarget hvit og sort.",
                merke = "B&CO",
                farge = "Sort",
                forHvem = "Dame",
                kategori = "Sko",
                pris = 499.00M,
                storlekar = new List<Storlek>
                        {
                            new Storlek { storlekId = 1, storlek = 36, antall = 10 },
                            new Storlek { storlekId = 2, storlek = 37, antall = 11 },
                            new Storlek { storlekId = 3, storlek = 38, antall = 12 },
                            new Storlek { storlekId = 4, storlek = 39, antall = 13 },
                            new Storlek { storlekId = 5, storlek = 40, antall = 14 },
                            new Storlek { storlekId = 6, storlek = 41, antall = 15 }
                        },
                bilder = new List<Bilde>
                        {
                            new Bilde { bildeId = 1, bildeUrl = "bilde1.jpg" },
                            new Bilde { bildeId = 2, bildeUrl = "bilde2.jpg" },
                            new Bilde { bildeId = 3, bildeUrl = "bilde3.jpg" },
                        }
            };

            //Act
            var resultat = (ViewResult)controller.Detaljer(1);
            var resultatListe = (Skoen)resultat.Model;

            //Assert
            Assert.AreEqual(resultat.ViewName, "");
            Assert.AreEqual(forventetResultat.skoId, resultatListe.skoId);
            Assert.AreEqual(forventetResultat.navn, resultatListe.navn);
            Assert.AreEqual(forventetResultat.merke, resultatListe.merke);
            Assert.AreEqual(forventetResultat.forHvem, resultatListe.forHvem);
            Assert.AreEqual(forventetResultat.kategori, resultatListe.kategori);
            Assert.AreEqual(forventetResultat.farge, resultatListe.farge);
            Assert.AreEqual(forventetResultat.beskrivelse, resultatListe.beskrivelse);
            Assert.AreEqual(forventetResultat.pris, resultatListe.pris);
            for (var i = 0; i < resultatListe.bilder.Count; ++i) {
                Assert.AreEqual(forventetResultat.bilder[i].bildeId, resultatListe.bilder[i].bildeId);
                Assert.AreEqual(forventetResultat.bilder[i].bildeUrl, resultatListe.bilder[i].bildeUrl);
            }
            for (var i = 0; i < resultatListe.storlekar.Count; ++i)
            {
                Assert.AreEqual(forventetResultat.storlekar[i].storlekId, resultatListe.storlekar[i].storlekId);
                Assert.AreEqual(forventetResultat.storlekar[i].storlek, resultatListe.storlekar[i].storlek);
                Assert.AreEqual(forventetResultat.storlekar[i].antall, resultatListe.storlekar[i].antall);
            }
        }
 public ActionResult SlettModal(Skoen enSko)
 {
     return PartialView(enSko);
 }
        public void NySko_Feil_Validering_Post()
        {
            //Arrange
            var controller = new SkoAdminController(new SkoBLL(new DbSkoStub()), new AttributtBLL(new DbAttributterStub()));
            var innSko = new Skoen();
            controller.ViewData.ModelState.AddModelError("fornavn", "Ikke oppgitt fornavn");
            //Act
            var resultat = (ViewResult)controller.NySko(innSko);

            //Assert
            Assert.IsTrue(resultat.ViewData.ModelState.Count == 1);
            Assert.AreEqual(resultat.ViewName, "");
        }
        public void NySko_Ok_Post()
        {
            //Arrange
            var controller = new SkoAdminController(new SkoBLL(new DbSkoStub()), new AttributtBLL(new DbAttributterStub()));
            var innSko = new Skoen {
                skoId = 1,
                navn = "B&CO 2455100311",
                beskrivelse = "Tøff B&CO damesko med lisser. Skoen er i tekstil med små metall nitter. Den har sort kantbånd rundt lisser stykket og langs kanten. Skoen er sort med brune flammer. Den har canvas dekksåle og canvas fôr. Gummisålen er tofarget hvit og sort.",
                merke = "B&CO",
                farge = "Sort",
                forHvem = "Dame",
                kategori = "Sko",
                pris = 499.00M,
            };

            //Act
            var resultat = (RedirectToRouteResult)controller.NySko(innSko);

            //Assert
            Assert.AreEqual(resultat.RouteName, "");
            Assert.AreEqual(resultat.RouteValues.Values.Last(), "SkoAdmin");
        }
 public void NySkoDel2_Vis_View()
 {
     //Arrange
     var controller = new SkoAdminController(new SkoBLL(new DbSkoStub()), new AttributtBLL(new DbAttributterStub()));
     var forventetResultat = new Skoen
     {
         skoId = 1,
         navn = "B&CO 2455100311",
         beskrivelse = "Tøff B&CO damesko med lisser. Skoen er i tekstil med små metall nitter. Den har sort kantbånd rundt lisser stykket og langs kanten. Skoen er sort med brune flammer. Den har canvas dekksåle og canvas fôr. Gummisålen er tofarget hvit og sort.",
         merke = "B&CO",
         farge = "Sort",
         forHvem = "Dame",
         kategori = "Sko",
         pris = 499.00M,
     };
     //Act
     var resultat = (ViewResult)controller.NySkoDel2(forventetResultat);
     var resultatModel = (Skoen)resultat.Model;
     //Assert
     Assert.AreEqual(resultat.ViewName, "");
     Assert.AreEqual(resultatModel.skoId, forventetResultat.skoId);
     Assert.AreEqual(resultatModel.navn, forventetResultat.navn);
     Assert.AreEqual(resultatModel.beskrivelse, forventetResultat.beskrivelse);
     Assert.AreEqual(resultatModel.merke, forventetResultat.merke);
     Assert.AreEqual(resultatModel.farge, forventetResultat.farge);
     Assert.AreEqual(resultatModel.forHvem, forventetResultat.forHvem);
     Assert.AreEqual(resultatModel.kategori, forventetResultat.kategori);
     Assert.AreEqual(resultatModel.pris, forventetResultat.pris);
 }
 public ActionResult ListePartial(Skoen sko)
 {
     return PartialView(sko);
 }
예제 #13
0
        public Skoen slett(int id)
        {
            var enSko = new Skoen
            {
                skoId = 1,
                navn = "B&CO 2455100311",
                beskrivelse = "Tøff B&CO damesko med lisser. Skoen er i tekstil med små metall nitter. Den har sort kantbånd rundt lisser stykket og langs kanten. Skoen er sort med brune flammer. Den har canvas dekksåle og canvas fôr. Gummisålen er tofarget hvit og sort.",
                merke = "B&CO",
                farge = "Sort",
                forHvem = "Dame",
                kategori = "Sko",
                pris = 499.00M,
                storlekar = new List<Storlek>
                        {
                            new Storlek { storlekId = 1, storlek = 36, antall = 10 },
                            new Storlek { storlekId = 2, storlek = 37, antall = 11 },
                            new Storlek { storlekId = 3, storlek = 38, antall = 12 },
                            new Storlek { storlekId = 4, storlek = 39, antall = 13 },
                            new Storlek { storlekId = 5, storlek = 40, antall = 14 },
                            new Storlek { storlekId = 6, storlek = 41, antall = 15 }
                        },
                bilder = new List<Bilde>
                        {
                            new Bilde { bildeId = 1, bildeUrl = "bilde1.jpg" },
                            new Bilde { bildeId = 2, bildeUrl = "bilde2.jpg" },
                            new Bilde { bildeId = 3, bildeUrl = "bilde3.jpg" },
                        }
            };

            if (id == enSko.skoId)
            {
                return enSko;
            }
            else
            {
                return null;
            }
        }
예제 #14
0
        public Storlek leggTilStorlek(int skoId, Storlek innStr)
        {
            var sko = new Skoen
            {
                skoId = 1
            };

            var enStr = new Storlek
            {
                storlekId = 1,
                storlek = innStr.storlek
            };

            if(sko.skoId == skoId)
            {
                return enStr;
            }
            else
            {
                return null;
            }
        }
예제 #15
0
 public Skoen lagreSko(Skoen innsko)
 {
     if(innsko.navn == "")
     {
         return null;
     }
     else
     {
         return innsko;
     }
 }