예제 #1
0
        public async Task <bool> LagBestilling(int avgangId, int antall, int brukerId)
        {
            try
            {
                var nyBestillingRad = new Bestillinger();

                Avganger ValgtAvgang = await _db.Avganger.FindAsync(avgangId);

                Brukere ValgtBruker = await _db.Brukere.FindAsync(brukerId);

                if (ValgtAvgang != null)
                {
                    nyBestillingRad.Avgang = ValgtAvgang;
                    nyBestillingRad.Antall = antall;
                    nyBestillingRad.Bruker = ValgtBruker;

                    _db.Bestillinger.Add(nyBestillingRad);
                    await _db.SaveChangesAsync();

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }
예제 #2
0
        //Gjeste brukerer sitt passord er tilfeldig, etter som de bare er midlertidige entiteter
        //Uten mulighet til å "logge inn".
        public async Task <Brukere> LagGjesteBruker()
        {
            try
            {
                Random rnd       = new Random();
                int    tilfeldig = rnd.Next();

                string passord = "Gjest" + tilfeldig;
                byte[] salt    = BrukerRepository.LagSalt();
                byte[] hash    = BrukerRepository.LagHash(passord, salt);

                Brukere gjesteBruker = new Brukere
                {
                    Brukernavn = "Gjest",
                    Passord    = hash,
                    Salt       = salt
                };

                await _db.Brukere.AddAsync(gjesteBruker);

                await _db.SaveChangesAsync();

                return(gjesteBruker);
            }
            catch
            {
                return(null);
            }
        }
예제 #3
0
        public async Task <bool> EndreBestilling(int bestillingId, int nyAvgangId, int nyttAntall, int nyBrukerId)
        {
            try
            {
                Bestillinger endretBestilling = await _db.Bestillinger.FirstOrDefaultAsync(b => b.Id == bestillingId);

                if (endretBestilling != null)
                {
                    Avganger nyAvgang = await _db.Avganger.FirstOrDefaultAsync(a => a.Id == nyAvgangId);

                    Brukere nyBruker = await _db.Brukere.FirstOrDefaultAsync(b => b.Id == nyBrukerId);

                    if (nyAvgang != null && nyBruker != null)
                    {
                        endretBestilling.Avgang = nyAvgang;
                        endretBestilling.Antall = nyttAntall;
                        endretBestilling.Bruker = nyBruker;
                        await _db.SaveChangesAsync();

                        return(true);
                    }
                    return(false);
                }
                return(false);
            }
            catch
            {
                return(false);
            }
        }
예제 #4
0
        //Endrer brukernavn, denne er ikke i bruk
        //Kan tenkes å brukes hvis man vil knytte navn til bruker
        public async Task <bool> EndreBrukernavn(Bruker bruker)
        {
            try
            {
                Brukere funnetBruker = await _db.Brukere.FirstOrDefaultAsync(b => b.Brukernavn == bruker.Brukernavn);

                if (funnetBruker != null)
                {
                    funnetBruker.Brukernavn = bruker.Brukernavn;
                    return(true);
                }

                return(false);
            }
            catch
            {
                return(false);
            }
        }
예제 #5
0
        public async Task <bool> LoggInn(Bruker bruker)
        {
            try
            {
                Brukere funnetBruker = await _db.Brukere.FirstOrDefaultAsync(b => b.Brukernavn == bruker.Brukernavn);

                //Sjekk passordet
                byte[] hash = LagHash(bruker.Passord, funnetBruker.Salt);
                bool   ok   = hash.SequenceEqual(funnetBruker.Passord);

                if (ok)
                {
                    return(true);
                }
                return(false);
            }
            catch
            {
                //_log.LogInformation(e.Message);
                return(false);
            }
        }
예제 #6
0
        //Sletter bruker med brukerId
        public async Task <bool> SlettBruker(int brukerId)
        {
            try
            {
                Brukere funnetBruker = await _db.Brukere.FindAsync(brukerId);

                System.Diagnostics.Debug.WriteLine(funnetBruker.Id + " " + funnetBruker.Brukernavn);
                if (funnetBruker != null)
                {
                    if (funnetBruker.Brukernavn != "Admin")
                    {
                        _db.Brukere.Remove(funnetBruker);
                        await _db.SaveChangesAsync();

                        return(true);
                    }
                }
                return(false);
            }
            catch
            {
                return(false);
            }
        }
예제 #7
0
        public static void Initialize(IServiceScope serviceScope)
        {
            var context = serviceScope.ServiceProvider.GetService <BestillingContext>();

            // må slette og opprette databasen hver gang n?r den skalinitieres (seed`es)
            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();



            var stasjonerList = new List <Stasjoner>
            {
                new Stasjoner {
                    StasjonsNavn = "Oslo", NummerPaaStopp = int.Parse("1")
                },
                new Stasjoner {
                    StasjonsNavn = "Sandvika", NummerPaaStopp = int.Parse("2")
                },
                new Stasjoner {
                    StasjonsNavn = "Asker", NummerPaaStopp = int.Parse("3")
                },
                new Stasjoner {
                    StasjonsNavn = "Drammen", NummerPaaStopp = int.Parse("4")
                },
                new Stasjoner {
                    StasjonsNavn = "Skoger", NummerPaaStopp = int.Parse("5")
                },
                new Stasjoner {
                    StasjonsNavn = "Sande", NummerPaaStopp = int.Parse("6")
                },
                new Stasjoner {
                    StasjonsNavn = "Holmestrand", NummerPaaStopp = int.Parse("7")
                },
                new Stasjoner {
                    StasjonsNavn = "Kopstadkrysset", NummerPaaStopp = int.Parse("8")
                },
                new Stasjoner {
                    StasjonsNavn = "Horten", NummerPaaStopp = int.Parse("9")
                }
            };

            var avgang1 = new Avganger
            {
                Fra = stasjonerList[0].StasjonsNavn,
                Til = stasjonerList[1].StasjonsNavn,
                Tid = "07:00"
            };
            var avgang2 = new Avganger
            {
                Fra = stasjonerList[3].StasjonsNavn,
                Til = stasjonerList[4].StasjonsNavn,
                Tid = "08:00"
            };

            var avgang3 = new Avganger
            {
                Fra = stasjonerList[5].StasjonsNavn,
                Til = stasjonerList[6].StasjonsNavn,
                Tid = "11:00"
            };
            var avgang4 = new Avganger
            {
                Fra = stasjonerList[7].StasjonsNavn,
                Til = stasjonerList[8].StasjonsNavn,
                Tid = "12:00"
            };

            var avgang5 = new Avganger
            {
                Fra = stasjonerList[0].StasjonsNavn,
                Til = stasjonerList[1].StasjonsNavn,
                Tid = "14:00"
            };
            var avgang6 = new Avganger
            {
                Fra = stasjonerList[3].StasjonsNavn,
                Til = stasjonerList[4].StasjonsNavn,
                Tid = "15:00"
            };

            var avgang7 = new Avganger
            {
                Fra = stasjonerList[5].StasjonsNavn,
                Til = stasjonerList[6].StasjonsNavn,
                Tid = "18:00"
            };
            var avgang8 = new Avganger
            {
                Fra = stasjonerList[7].StasjonsNavn,
                Til = stasjonerList[8].StasjonsNavn,
                Tid = "21:00"
            };

            var bestilling1 = new Bestillinger {
                Fra = "Oslo", Til = "Drammen", Tid = "07:00", Pris = double.Parse("50"), Dato = "2021-01-13"
            };
            var bestilling2 = new Bestillinger {
                Fra = "Drammen", Til = "Horten", Tid = "08:00", Pris = double.Parse("50"), Dato = "2021-02-20"
            };

            foreach (Stasjoner s in stasjonerList)
            {
                context.Stasjoner.Add(s);
            }

            /*
             * context.Stasjoner.Add(stasjon1);
             * context.Stasjoner.Add(stasjon2);
             * context.Stasjoner.Add(stasjon3);
             */
            context.Avganger.Add(avgang1);
            context.Avganger.Add(avgang2);
            context.Bestillinger.Add(bestilling1);
            context.Bestillinger.Add(bestilling2);

            var db = serviceScope.ServiceProvider.GetService <BestillingContext>();

            var adminBruker = new Brukere();

            adminBruker.Brukernavn = "Admin1";
            string passord = "Passord1";


            byte[] salt = BrukerRepository.Salt();
            byte[] hash = BrukerRepository.Hash(passord, salt);

            adminBruker.Passord = hash;
            adminBruker.Salt    = salt;

            db.Brukere.Add(adminBruker);


            context.SaveChanges();
        }