示例#1
0
        // Hent alle avganger og legg det i en liste og returner listen

        public List <Avgang> HentAlleAvganger()
        {
            try
            {
                var alleAvganger = _db.Avgang.ToList();
                var avganger     = new List <Avgang>();
                foreach (var avgang in alleAvganger)
                {
                    var enAvgang = new Avgang()
                    {
                        AId        = avgang.AId,
                        Avgangstid = avgang.Avgangstid,
                        Spor       = avgang.Spor,
                        Linje      = avgang.Linje,
                        SId        = avgang.SId
                    };
                    avganger.Add(enAvgang);
                }

                return(avganger);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når HentAlleAvganger-metoden prøvde å hente alle avgangene",
                                  "DBAvgang:HentAlleAvganger",
                                  feil);
                return(null);
            }
        }
        public void HentalleAvganger()
        {
            var controller = new LoginnController(new AvgangLogikk(new AvgangRepositoryStub()));

            var forventetResultet = new List <Avgang>();
            var avgang            = new Avgang()
            {
                AId         = 1,
                FraogTiltid = "10:30-17:30",
                Lengdne     = "7timer",
                Price       = 599,
                StrekningId = 1
            };

            forventetResultet.Add(avgang);
            forventetResultet.Add(avgang);
            forventetResultet.Add(avgang);

            var actionResult = (ViewResult)controller.HentAlleAvgang();
            var resultat     = (List <Avgang>)actionResult.Model;


            Assert.AreEqual(actionResult.ViewName, "");

            for (var i = 0; i < resultat.Count; i++)
            {
                Assert.AreEqual(forventetResultet[i].AId, resultat[i].AId);
                Assert.AreEqual(forventetResultet[i].FraogTiltid, resultat[i].FraogTiltid);
                Assert.AreEqual(forventetResultet[i].Lengdne, resultat[i].Lengdne);
                Assert.AreEqual(forventetResultet[i].Price, resultat[i].Price);
            }
        }
示例#3
0
        // Hent alle avganger fra  utreise stasjon med utreise tid.

        public List <Avgang> HentUtreiseAvganger(Strekning valgtStasjon)
        {
            try
            {
                var           stasjoner    = _db.Strekning.Where(s => s.Stasjon == valgtStasjon.FraStasjon);
                List <Avgang> alleAvganger = new List <Avgang>();

                foreach (var stasjon in stasjoner)
                {
                    foreach (var avgang in stasjon.Avganger)
                    {
                        if (stasjon.SId == avgang.SId && DateTime.Parse(avgang.Avgangstid) > valgtStasjon.Tid)
                        {
                            var enAvgang = new Avgang();
                            enAvgang.AId        = avgang.AId;
                            enAvgang.Avgangstid = avgang.Avgangstid;
                            enAvgang.Spor       = avgang.Spor;
                            enAvgang.Linje      = avgang.Linje;
                            alleAvganger.Add(enAvgang);
                        }
                    }
                }

                var sortertAvganger = alleAvganger.OrderBy(x =>
                                                           DateTime.Parse(x.Avgangstid)).ToList();

                return(sortertAvganger);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når HentUtreiseAvganger-metoden prøvde å hente utreise avgangene",
                                  "DBAvgang:HentUtreiseAvganger", feil);
                return(null);
            }
        }
示例#4
0
        public ActionResult RegistrerAvgang(Avgang innAvgang)
        {
            if (ModelState.IsValid)
            {
                bool insertOK = _avgangBIll.lagreAvgang(innAvgang);
                if (insertOK)
                {
                    try
                    {
                        string        filePath = Server.MapPath(@"~\LoggFolder_For_Endring_Og_Sletting\RegistreringLogg.txt");
                        List <string> lines    = System.IO.File.ReadAllLines(filePath).ToList();
                        lines.Add("Dato: " + dt);
                        lines.Add("Avgang id = '" + innAvgang.AId + "' med tidslengden: '" + innAvgang.Lengdne + "' og prisen '" + innAvgang.Price + "' er registrert.(AVGANG REGISTRERT)");
                        lines.Add("------------------------- ");
                        lines.Add(" ");
                        System.IO.File.WriteAllLines(filePath, lines);
                    }catch (Exception feil)
                    {
                    }


                    return(RedirectToAction("HentAlleAvgang"));
                }
            }
            return(View());
        }
示例#5
0
        public async Task LeggTilFeilAvgangObjekt()
        {
            var avgang = new Avgang
            {
                Id  = 1,
                Fra = "",
                Til = "Oslo",
                Tid = "11:00"
            };

            mockRep.Setup(l => l.LeggTil(avgang)).ReturnsAsync(true);

            var avgangController = new AvgangerController(mockRep.Object, mockLog.Object);

            avgangController.ModelState.AddModelError("Fra", "Avgangsobjektet er ikke riktig");

            mockSession[_loggetInn] = _loggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            avgangController.ControllerContext.HttpContext = mockHttpContext.Object;

            var resultat = await avgangController.LeggTil(avgang) as BadRequestObjectResult;

            Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode);
            Assert.Equal("Avgangsobjektet er ikke riktig", resultat.Value);
        }
示例#6
0
        public bool SettInnAvgang(Avgang innAvgang)
        {
            try
            {
                var avgang = new DBAvgang()
                {
                    Avgangstid = innAvgang.Avgangstid,
                    Spor       = innAvgang.Spor,
                    Linje      = innAvgang.Linje,
                    SId        = innAvgang.SId
                };

                if (_db.Avgang.Any(a => a.Avgangstid == innAvgang.Avgangstid))
                {
                    return(false);
                }

                var endring = new DBEndring()
                {
                    Tidspunkt        = DateTime.Now,
                    EndringOperasjon = "En ny avgang har blitt lagt til: ",
                    Endring          = $"[{avgang.AId}] {avgang.Avgangstid} <br> {avgang.Spor} <br> {avgang.Linje}"
                };
                _db.Endring.Add(endring);
                _db.Avgang.Add(avgang);
                _db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                DBLog.ErrorToFile("Feil oppstått når en avgang skulle bli lagt til", "DBAvgang:SettInnAvgang", feil);
                return(false);
            }
        }
示例#7
0
        public void endreAvganger_IkkeFunnet()
        {
            //Arrange
            var controller        = new HomeController(new BestillingLogikk(new BestillingRepositoryStub()));
            var forventetResultat = new List <Avgang>();
            var avgang            = new Avgang()
            {
                id = 0,
                destinasjonFra_id = 5,
                destinasjonTil_id = 8,
                tid     = "23:00",
                ankomst = "00:00"
            };

            forventetResultat.Add(avgang);

            var    jsonSerializer = new JavaScriptSerializer();
            string json           = jsonSerializer.Serialize(forventetResultat);

            //Act
            int destFra    = (int)(avgang.destinasjonFra_id);
            int destTil    = (int)(avgang.destinasjonTil_id);
            var jsonResult = (string)controller.endreAvgang(avgang.id, destFra, destTil, avgang.tid, avgang.ankomst);

            //Assert
            Assert.IsNotNull(jsonResult);
            Assert.AreEqual("false", jsonResult);
        }
示例#8
0
        public async Task EndreAvgangFeilModel()
        {
            var avgang = new Avgang
            {
                Id  = 1,
                Fra = "",
                Til = "Drammen",
                Tid = "11:00"
            };

            mockRep.Setup(l => l.Endre(avgang)).ReturnsAsync(true);

            var avgangController = new AvgangerController(mockRep.Object, mockLog.Object);

            avgangController.ModelState.AddModelError("Fra", "Avgangen er feil");

            mockSession[_loggetInn] = _loggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            avgangController.ControllerContext.HttpContext = mockHttpContext.Object;

            var resultat = await avgangController.Endre(avgang) as BadRequestObjectResult;

            Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode);
            Assert.Equal("Avgangen er feil", resultat.Value);
        }
示例#9
0
        public async Task <Avgang> HentEn(int id)
        {
            try
            {
                Avganger enAvgang = await _db.Avganger.FindAsync(id);

                if (enAvgang == null)
                {
                    return(null);
                }
                ;
                var hentetAvgang = new Avgang()
                {
                    Id  = enAvgang.Id,
                    Fra = enAvgang.Fra,
                    Til = enAvgang.Til,
                    Tid = enAvgang.Tid
                };
                return(hentetAvgang);
            }
            catch (Exception e)
            {
                _log.LogInformation(e.Message);
                return(null);
            }
        }
示例#10
0
        public ActionResult slettAvgang(int id, Avgang slettAvgang)
        {
            Avgang enAvgang = _avgangBIll.hentEnAvgang(id);
            bool   slettOK  = _avgangBIll.slettAvgang(id);

            if (slettOK)
            {
                try
                {
                    string        filePath = Server.MapPath(@"~\LoggFolder_For_Endring_Og_Sletting\AvgangLogg.txt");
                    List <string> lines    = System.IO.File.ReadAllLines(filePath).ToList();
                    lines.Add("Dato: " + dt);
                    lines.Add("Avgang id = '" + enAvgang.AId + "' med tidslengden: '" + enAvgang.Lengdne + "' og prisen '" + enAvgang.Price + "' er slettet.(SLETTET AVGANG)");
                    lines.Add("------------------------- ");
                    lines.Add(" ");

                    System.IO.File.WriteAllLines(filePath, lines);
                }catch (Exception feil)
                {
                }


                return(RedirectToAction("HentAlleAvgang"));
            }
            return(View());
        }
示例#11
0
        public async Task <List <Avgang> > VisAvganger(Avgang finnAvgang)
        {
            try
            {
                Stasjoner fraStasjon = _db.Stasjoner.FirstOrDefault(s => s.StasjonsNavn == finnAvgang.fraStasjon);
                Stasjoner tilStasjon = _db.Stasjoner.FirstOrDefault(s => s.StasjonsNavn == finnAvgang.tilStasjon);
                DateTime  turDato    = DateTime.Parse(finnAvgang.datepickerTur);
                if (!(finnAvgang.datepickerRetur == null))
                {
                    DateTime returDato = DateTime.Parse(finnAvgang.datepickerRetur);
                }

                Holdeplasser fraHoldeplass = _db.Holdeplasser.FirstOrDefault(s => s.Stasjon == fraStasjon);
                Holdeplasser tilHoldeplass = _db.Holdeplasser.FirstOrDefault(s => s.Stasjon == tilStasjon);

                //Finner reisetiden mellom holdeplassene
                int reisetid = Math.Abs(fraHoldeplass.Tid - tilHoldeplass.Tid);
                //Finner distansen mellom holdeplassene
                int reiseDistanse = Math.Abs(fraHoldeplass.Distanse - tilHoldeplass.Distanse);

                List <Priser> kommendeAvganger = await _db.Priser.Where(a => a.FraStasjon == fraStasjon && a.TilStasjon == tilStasjon).ToListAsync();

                List <Avgang> alleAvganger = new List <Avgang>();

                foreach (var avg in kommendeAvganger)
                {
                    var enAvgang = new Avgang
                    {
                        fraStasjon       = avg.FraStasjon.StasjonsNavn,
                        tilStasjon       = avg.TilStasjon.StasjonsNavn,
                        ruteNavn         = fraHoldeplass.Rute.RuteNavn,
                        tid              = reisetid,
                        distanse         = reiseDistanse,
                        datepickerTur    = finnAvgang.datepickerTur,
                        datepickerRetur  = finnAvgang.datepickerRetur,
                        voksen           = finnAvgang.voksen,
                        barn             = finnAvgang.barn,
                        smaabarn         = finnAvgang.smaabarn,
                        student          = finnAvgang.student,
                        honnor           = finnAvgang.honnor,
                        vernepliktig     = finnAvgang.vernepliktig,
                        ledsager         = finnAvgang.ledsager,
                        prisVoksen       = finnAvgang.voksen * avg.Voksen,
                        prisBarn         = finnAvgang.barn * avg.Barn,
                        prisSmaabarn     = finnAvgang.smaabarn * avg.Smaabarn,
                        prisStudent      = finnAvgang.student * avg.Student,
                        prisHonnor       = finnAvgang.honnor * avg.Honnor,
                        prisVernepliktig = finnAvgang.vernepliktig * avg.Vernepliktig,
                        prisLedsager     = finnAvgang.ledsager * avg.Ledsager
                    };
                    alleAvganger.Add(enAvgang);
                }
                return(alleAvganger);
            }
            catch
            {
                return(null);
            }
        }
示例#12
0
        public IActionResult NyAvgang(int SId)
        {
            var avgang = new Avgang()
            {
                SId = SId
            };

            return(View("NyAvgang", avgang));
        }
示例#13
0
        // GET: Bestilling
        public ActionResult Bestilling()
        {
            var flyselskap = new Avgang()
            {
                Flyselskap = "KLM"
            };

            return(View());
        }
示例#14
0
        public void Endre_Avgang_feil_validering_Post()
        {
            var controller = HentController();

            var avgang = new Avgang();

            avgang.Avgangstid = "";
            var actionResult = (ViewResult)controller.EndreAvgang(avgang);

            Assert.Equal("Avgangen kunne ikke bli endret, prøv igjen", actionResult.ViewData["Error"]);
        }
示例#15
0
        public void NyAvgang_feil_validering_Post()
        {
            var controller = HentController();
            var avgang     = new Avgang();

            controller.ViewData.ModelState.AddModelError("Avgangstid", "Ikke oppgitt Avgangstid");
            var actionResult = (ViewResult)controller.NyAvgang(avgang);

            Assert.True(actionResult.ViewData.ModelState.Count == 1);
            Assert.Equal("NyAvgang", actionResult.ViewName);
        }
示例#16
0
        public void NyAvgang_feil_Post()
        {
            var controller = HentController();
            var avgang     = new Avgang();

            avgang.Avgangstid = "";

            var actionResult = (ViewResult)controller.NyAvgang(avgang);

            Assert.Equal("Avgangen kunne ikke bli lagt til, prøv igjen", actionResult.ViewData["Error"]);
        }
 public bool endreAvgang(int id, Avgang endreAvgang)
 {
     if (id == 0)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
 public bool lagreAvgang(Avgang lagreAvgang)
 {
     if (lagreAvgang.FraogTiltid == "")
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
示例#19
0
        public bool SettInnAvgang(Avgang innAvgang)
        {
            if (innAvgang != null &&
                innAvgang.Avgangstid != null &&
                innAvgang.Linje != null)
            {
                avganger.Add(innAvgang);
                return(true);
            }

            return(false);
        }
        public void RegistrerAvgang_Post_DB_feil()
        {
            var controller = new LoginnController(new AvgangLogikk(new AvgangRepositoryStub()));
            var innavgang  = new Avgang();

            innavgang.FraogTiltid = "";


            var actionResult = (ViewResult)controller.RegistrerAvgang(innavgang);


            Assert.AreEqual(actionResult.ViewName, "");
        }
        public void RegistrerAvgang_Post_Model_feil()
        {
            var controller = new LoginnController(new AvgangLogikk(new AvgangRepositoryStub()));
            var innavgang  = new Avgang();

            controller.ViewData.ModelState.AddModelError("fraogtil tid", "Ikke oppgitt fra og til tid");


            var actionResult = (ViewResult)controller.RegistrerAvgang(innavgang);


            Assert.IsTrue(actionResult.ViewData.ModelState.Count == 1);
            Assert.AreEqual(actionResult.ViewName, "");
        }
        public void EndreAvgang_feil_validering_Post()
        {
            var controller = new LoginnController(new AvgangLogikk(new AvgangRepositoryStub()));
            var innavgang  = new Avgang();

            controller.ViewData.ModelState.AddModelError("feil", "ID = 0");


            var actionResult = (ViewResult)controller.EndreAvgang(0, innavgang);


            Assert.IsTrue(actionResult.ViewData.ModelState.Count == 1);
            Assert.AreEqual(actionResult.ViewData.ModelState["feil"].Errors[0].ErrorMessage, "ID = 0");
            Assert.AreEqual(actionResult.ViewName, "");
        }
示例#23
0
        public async Task <ActionResult> HentEn(int id)
        {
            if (string.IsNullOrEmpty(HttpContext.Session.GetString(_loggetInn)))
            {
                return(Unauthorized("Ikke logget inn"));
            }

            Avgang avgang = await _db.HentEn(id);

            if (avgang == null)
            {
                _log.LogInformation("Fant ikke avgangen");
                return(NotFound("Fant ikke avgangen"));
            }
            return(Ok(avgang));
        }
示例#24
0
        public ActionResult EndreAvgang(Avgang innAvgang)
        {
            var endreOK = _avgang.EndreAvgang(innAvgang);

            if (ModelState.IsValid)
            {
                if (endreOK)
                {
                    ViewBag.OK = "Avgangen har blitt endret";
                    return(View("EndreAvgang", innAvgang));
                }
            }

            ViewBag.Error = "Avgangen kunne ikke bli endret, prøv igjen";
            return(View("EndreAvgang", innAvgang));
        }
示例#25
0
 public List <Avgang> hentavganginholder(int id)
 {
     using (var db1 = new DBContext())
     {
         var           avgang       = new Avgang();
         List <Avgang> alleAvganger = db1.Avganger.Where(a => a.AId == id).ToList().Select(a => new Avgang
         {
             AId         = a.AId,
             FraogTiltid = a.FraogTiltid,
             Lengdne     = a.Lengdne,
             Price       = a.Price
         }).ToList();
         // Debug.WriteLine(alleAvganger);
         return(alleAvganger);
     }
 }
示例#26
0
        public void NyAvgang_validering_Post()
        {
            var controller = HentController();

            var avgang = new Avgang()
            {
                SId        = 1,
                AId        = 1,
                Avgangstid = "12:30",
                Spor       = 2,
                Linje      = "L4"
            };
            var actionResult = (ViewResult)controller.NyAvgang(avgang);

            Assert.Equal("Avgangen har blitt lagt til", actionResult.ViewData["OK"]);
        }
        public void EndreAvgang_funnet()
        {
            var controller = new LoginnController(new AvgangLogikk(new AvgangRepositoryStub()));
            var innavgang  = new Avgang()
            {
                FraogTiltid = "10:30-17:30",
                Lengdne     = "7timer",
                Price       = 599,
                StrekningId = 1
            };

            var actionResultat = (RedirectToRouteResult)controller.EndreAvgang(1, innavgang);


            Assert.AreEqual(actionResultat.RouteName, "");
            Assert.AreEqual(actionResultat.RouteValues.Values.First(), "HentAlleAvgang");
        }
        public void SlettAvgang_ikke_funnet_Post()
        {
            var controller = new LoginnController(new AvgangLogikk(new AvgangRepositoryStub()));
            var innavgang  = new Avgang()
            {
                FraogTiltid = "10:30-17:30",
                Lengdne     = "7timer",
                Price       = 599,
                StrekningId = 1
            };


            var actionResult = (ViewResult)controller.slettAvgang(0, innavgang);


            Assert.AreEqual(actionResult.ViewName, "");
        }
示例#29
0
        public ActionResult NyAvgang(Avgang innAvgang)
        {
            var settInnOK = _avgang.SettInnAvgang(innAvgang);

            if (ModelState.IsValid)
            {
                if (settInnOK)
                {
                    ViewBag.OK = "Avgangen har blitt lagt til";
                    ModelState.Clear();
                    return(View("NyAvgang", innAvgang));
                }
            }

            ViewBag.Error = "Avgangen kunne ikke bli lagt til, prøv igjen";
            return(View("NyAvgang", innAvgang));
        }
        public List <Avgang> HentalleAvganger()
        {
            var avgangListe = new List <Avgang>();
            var avgang      = new Avgang()
            {
                AId         = 1,
                FraogTiltid = "10:30-17:30",
                Lengdne     = "7timer",
                Price       = 599,
                StrekningId = 1
            };

            avgangListe.Add(avgang);
            avgangListe.Add(avgang);
            avgangListe.Add(avgang);
            return(avgangListe);
        }