Example #1
0
        public async Task <ActionResult> OppdaterBillettype(Billettyper oppdatertBillettype)
        {
            if (string.IsNullOrEmpty(HttpContext.Session.GetString(_innlogget)))
            {
                return(Unauthorized("Ikke innlogget"));
            }
            int rabattsats = oppdatertBillettype.Rabattsats;

            if (ModelState.IsValid && rabattsats <= 100 && rabattsats >= 0)
            {
                bool returOK = await _db.OppdaterBillettype(oppdatertBillettype);

                if (!returOK)
                {
                    melding = $"Endringen av Billettype kunne ikke utføres med verdiene: {oppdatertBillettype}";
                    _log.LogWarning(melding);
                    return(NotFound(melding));
                }
                melding = $"Endringen av Billettype ble utført med verdiene: {oppdatertBillettype}";
                _log.LogInformation(melding);
                return(Ok(melding));
            }
            _log.LogWarning(ugyldigValidering);
            return(BadRequest(ugyldigValidering));
        }
Example #2
0
        public async Task <ActionResult> NyBillettype(Billettyper innBillettype)
        {
            if (string.IsNullOrEmpty(HttpContext.Session.GetString(_innlogget)))
            {
                return(Unauthorized("Ikke innlogget"));
            }
            int rabattsats = innBillettype.Rabattsats;

            if (ModelState.IsValid && rabattsats <= 100 && rabattsats >= 0)
            {
                bool returOK = await _db.NyBillettype(innBillettype);

                if (!returOK)
                {
                    melding = $"Ny Billettype kunne ikke lagres med verdiene: {innBillettype}";
                    _log.LogWarning(melding);
                    return(BadRequest(melding));
                }
                melding = $"Ny billettype ble lagret med verdiene: {innBillettype}";
                _log.LogInformation(melding);
                return(Ok(melding));
            }
            _log.LogWarning(ugyldigValidering);
            return(BadRequest(ugyldigValidering));
        }
        // Returnerer en List med Billettyper-objekter
        private List <Billettyper> HentBillettyperListe()
        {
            Billettyper billettype1 = new Billettyper {
                Billettype = "Student", Rabattsats = 50
            };
            Billettyper billettype2 = new Billettyper {
                Billettype = "Voksen", Rabattsats = 0
            };
            Billettyper billettype3 = new Billettyper {
                Billettype = "Honør", Rabattsats = 25
            };

            return(new List <Billettyper> {
                billettype1, billettype2, billettype3
            });
        }
Example #4
0
        public async Task <ActionResult> HentEnBillettype(int id)
        {
            if (ModelState.IsValid)
            {
                Billettyper billettype = await _db.HentEnBillettype(id);

                if (billettype == null)
                {
                    melding = $"Billettypen med Id: {id}, ble ikke funnet";
                    _log.LogWarning(melding);
                    return(NotFound(melding));
                }
                return(Ok(billettype));
            }
            _log.LogWarning(ugyldigValidering);
            return(BadRequest(ugyldigValidering));
        }
        public async Task HentEnBillettype_RiktigeVerdier()
        {
            // Arrange
            int         id        = 1;
            Billettyper forventet = HentEnBillettype();

            mockRepo.Setup(b => b.HentEnBillettype(id)).ReturnsAsync(HentEnBillettype());

            // Act
            var resultat = await billettyperController.HentEnBillettype(id) as OkObjectResult;

            Billettyper faktisk = (Billettyper)resultat.Value;

            // Assert
            // Tester om alle verdiene er like i alle elementene
            Assert.Equal(forventet.Billettype, faktisk.Billettype);
            Assert.Equal(forventet.Rabattsats, faktisk.Rabattsats);
        }
        public async Task <bool> OppdaterBillettype(Billettyper opdatertBillettype)
        {
            try
            {
                Billettyper billettype = await _db.Billettyper.FindAsync(opdatertBillettype.Id);

                billettype.Billettype = opdatertBillettype.Billettype;
                billettype.Rabattsats = opdatertBillettype.Rabattsats;
                await _db.SaveChangesAsync();

                return(true);
            }
            catch (Exception e)
            {
                _log.LogInformation(e.Message);
                return(false);
            }
        }
        public async Task <bool> NyBillettype(Billettyper innBillettype)
        {
            try
            {
                Billettyper nyBillettype = new Billettyper
                {
                    Billettype = innBillettype.Billettype,
                    Rabattsats = innBillettype.Rabattsats
                };
                _db.Billettyper.Add(nyBillettype);
                await _db.SaveChangesAsync();

                return(true);
            }
            catch (Exception e)
            {
                _log.LogInformation(e.Message);
                return(false);
            }
        }
Example #8
0
        // Fullfør ordre
        public async Task <bool> FullforOrdre(NyOrdre ordreModel)
        {
            try
            {
                // Henter ut ruten som tilhører OrdreModel
                Ruter rute = await _db.Ruter.FirstOrDefaultAsync(r => r.Linjekode == ordreModel.Linjekode);

                // Henter Avgangens Id
                Avganger avgang = await _db.Avganger.FirstOrDefaultAsync(a => a.Id == ordreModel.AvgangId);

                // Finner startStopp, og finner stoppnummeret i ruten
                Stopp startStopp = await _db.Stopp.FirstOrDefaultAsync(s => s.Navn == ordreModel.StartStopp);

                int stoppNummer1 = await _hjelp.FinnStoppNummer(startStopp, rute);

                // Finner sluttStopp, og finner stoppnummeret i ruten
                Stopp sluttStopp = await _db.Stopp.FirstOrDefaultAsync(s => s.Navn == ordreModel.SluttStopp);

                int stoppNummer2 = await _hjelp.FinnStoppNummer(sluttStopp, rute);

                // Regner ut antall stopp
                int antallStopp = stoppNummer2 - stoppNummer1;

                // Finner summen for reisen
                // antallStopp, rute, liste med billettype
                int sum = await _hjelp.BeregnPris(rute, antallStopp, ordreModel.Billettyper);

                // Lager en ordre basert på ordreModel, rute og avgang
                var ordre = new Ordre
                {
                    Epost      = ordreModel.Epost,
                    StartStopp = startStopp,
                    SluttStopp = sluttStopp,
                    Sum        = sum,
                    Rute       = rute,
                    Avgang     = avgang
                };

                // Legger ordren til i databasen
                _db.Ordre.Add(ordre);

                // Raden til spesifisert avgang
                Avganger dbAvgang = _db.Avganger.Find(avgang.Id);

                // Går gjennom listen med billettyper
                foreach (string billettype in ordreModel.Billettyper)
                {
                    // Henter ut en billettype i listen
                    Billettyper billettypeObjekt = await _db.Billettyper.FirstOrDefaultAsync(a => a.Billettype == billettype);

                    // Lager en ordrelinje
                    var ordrelinje = new Ordrelinjer
                    {
                        Billettype = billettypeObjekt,
                        Ordre      = ordre
                    };

                    // Legger denne ordrelinjen til databasen
                    _db.Ordrelinjer.Add(ordrelinje);

                    // Øker antalll solgte billetter med 1
                    dbAvgang.SolgteBilletter++;
                }

                // Lagrer alt som er blitt lagt til i databasen
                _db.SaveChanges();

                return(true);
            }
            catch (Exception e)
            {
                _log.LogInformation(e.Message);
                return(false);
            }
        }