Exemplo n.º 1
0
        public async Task LagreFeilInput()
        {
            var innBussbestilling = new BussBestilling
            {
                Id            = 1,
                Fornavn       = "Per",
                Etternavn     = "Hansen",
                Telefonnummer = "9",
                Epost         = "*****@*****.**",
                Kortnummer    = "1234567890123456",
                AntallBarn    = 2,
                AntallVoksne  = 3,
                Dato          = "12/12/2020",
                Tid           = "09:00",
                BarnePris     = 50,
                VoksenPris    = 100,
                StartStasjon  = "Bergen",
                EndeStasjon   = "Oslo"
            };

            mockRep.Setup(b => b.Lagre(innBussbestilling)).ReturnsAsync(true);
            var bestillingController = new BestillingController(mockRep.Object, mockLog.Object);

            bestillingController.ModelState.AddModelError("Telefonnummer", "Feil i inputvalidering på server");

            var resultat = await bestillingController.Lagre(innBussbestilling) as BadRequestObjectResult;

            Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode);
            Assert.Equal("Feil i inputvalidering på server", resultat.Value);
        }
Exemplo n.º 2
0
        public async Task LagreIkkeOK()
        {
            var innBussbestilling = new BussBestilling
            {
                Id            = 1,
                Fornavn       = "Per",
                Etternavn     = "Hansen",
                Telefonnummer = "99345672",
                Epost         = "*****@*****.**",
                Kortnummer    = "1234567890123456",
                AntallBarn    = 2,
                AntallVoksne  = 3,
                Dato          = "12/12/2020",
                Tid           = "09:00",
                BarnePris     = 50,
                VoksenPris    = 100,
                StartStasjon  = "Bergen"
            };

            mockRep.Setup(k => k.Lagre(innBussbestilling)).ReturnsAsync(false);
            var bestillingController = new BestillingController(mockRep.Object, mockLog.Object);
            var resultat             = await bestillingController.Lagre(innBussbestilling) as BadRequestObjectResult;

            Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode);
            Assert.Equal("Bestilling ble ikke registrert", resultat.Value);
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Lagre(BussBestilling innBussBestilling)
        {
            if (ModelState.IsValid)
            {
                bool returOk = await _db.Lagre(innBussBestilling);

                if (!returOk)
                {
                    _log.LogInformation("Bestilling ble ikke registrert");
                    return(BadRequest("Bestilling ble ikke registrert"));
                }
                return(Ok("Bestilling registrert"));
            }
            _log.LogInformation("Feil i inputvalidering");
            return(BadRequest("Feil i inputvalidering på server"));
        }
        public async Task <bool> Lagre(BussBestilling innBussBestilling)
        {
            int          turID     = 0;
            List <Turer> alleTurer = await _db.Turer.ToListAsync();

            foreach (var turen in alleTurer)
            {
                if (innBussBestilling.StartStasjon.Equals(turen.StartStasjon.StasjonsNavn) &&
                    innBussBestilling.EndeStasjon.Equals(turen.EndeStasjon.StasjonsNavn) &&
                    innBussBestilling.Tid.Equals(turen.Tid) && innBussBestilling.Dato.Equals(turen.Dato))
                {
                    turID = turen.TurId;
                }
            }
            Turer funnetTur = _db.Turer.Find(turID);

            double totalpris = (innBussBestilling.AntallBarn * funnetTur.BarnePris) + (innBussBestilling.AntallVoksne * funnetTur.VoksenPris);


            int          kundeID    = 0;
            List <Kunde> alleKunder = await _db.Kunder.ToListAsync();

            foreach (var kunde in alleKunder)
            {
                if (innBussBestilling.Fornavn.Equals(kunde.Fornavn) &&
                    innBussBestilling.Etternavn.Equals(kunde.Etternavn) &&
                    innBussBestilling.Epost.Equals(kunde.Epost) &&
                    innBussBestilling.Kortnummer.Equals(kunde.Kortnummer))
                {
                    kundeID = kunde.KId;
                }
            }
            try
            {
                var nyBestillingRad = new Bestilling();
                nyBestillingRad.AntallBarn   = innBussBestilling.AntallBarn;
                nyBestillingRad.AntallVoksne = innBussBestilling.AntallVoksne;
                nyBestillingRad.TotalPris    = totalpris;
                nyBestillingRad.Tur          = funnetTur;


                Kunde funnetKunde = await _db.Kunder.FindAsync(kundeID);

                if (funnetKunde == null)
                {
                    var kundeRad = new Kunde();
                    kundeRad.Fornavn       = innBussBestilling.Fornavn;
                    kundeRad.Etternavn     = innBussBestilling.Etternavn;
                    kundeRad.Telefonnummer = innBussBestilling.Telefonnummer;
                    kundeRad.Epost         = innBussBestilling.Epost;
                    kundeRad.Kortnummer    = innBussBestilling.Kortnummer;
                    _db.Kunder.Add(kundeRad);
                    await _db.SaveChangesAsync();

                    nyBestillingRad.kunde = kundeRad;
                }
                else
                {
                    nyBestillingRad.kunde = funnetKunde;
                }
                _db.Bestillinger.Add(nyBestillingRad);
                await _db.SaveChangesAsync();

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