Пример #1
0
        public bool insertBestilling(Handlevogn hv)
        {
            var db = new DBContext();

            try
            {
                var nyBestilling = new Bestillinger()
                {
                    KundeId = hv.kunde.id
                };
                List <Ordrelinjer> nyOrdrelinjer = new List <Ordrelinjer>();
                foreach (HandlevognItem h in hv.varer)
                {
                    Ordrelinjer tmpOrdrelinje = new Ordrelinjer()
                    {
                        ID            = h.id,
                        ProduktId     = h.Vare.id,
                        Vare          = db.Varer.FirstOrDefault(k => k.ID == h.Vare.id),
                        Kvantitet     = h.Antall,
                        Bestillingsnr = nyBestilling.ID,
                        Bestilling    = nyBestilling
                    };

                    nyOrdrelinjer.Add(tmpOrdrelinje);
                    db.Ordrelinjer.Add(tmpOrdrelinje);
                }
                nyBestilling.Ordrelinjer = nyOrdrelinjer;
                hv.calculateSumTotal();
                nyBestilling.PrisTotal = hv.prisTotal;
                nyBestilling.OrderDate = DateTime.Now;
                db.Bestillinger.Add(nyBestilling);
                db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                return(false);
            }
        }
Пример #2
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);
            }
        }