public async Task <bool> OpprettTur(Tur innTur)
        {
            try
            {
                var nyTurRad = new Turer();
                nyTurRad.Dato       = innTur.Dato;
                nyTurRad.Tid        = innTur.Tid;
                nyTurRad.BarnePris  = innTur.BarnePris;
                nyTurRad.VoksenPris = innTur.VoksenPris;

                bool           startStasjonFunnet = false;
                List <Stasjon> alleStasjoner      = await _db.Stasjoner.ToListAsync();

                foreach (var stasjon in alleStasjoner)
                {
                    if (innTur.StartStasjon.Equals(stasjon.StasjonsNavn))
                    {
                        nyTurRad.StartStasjon = stasjon;
                        startStasjonFunnet    = true;
                    }
                }

                if (!startStasjonFunnet)
                {
                    var startStasjonRad = new Stasjon();
                    startStasjonRad.StasjonsNavn = innTur.StartStasjon;
                    nyTurRad.StartStasjon        = startStasjonRad;
                }

                bool endeStasjonFunnet = false;
                foreach (var stasjon in alleStasjoner)
                {
                    if (innTur.EndeStasjon.Equals(stasjon.StasjonsNavn))
                    {
                        nyTurRad.EndeStasjon = stasjon;
                        endeStasjonFunnet    = true;
                    }
                }

                if (!endeStasjonFunnet)
                {
                    var endeStasjonRad = new Stasjon();
                    endeStasjonRad.StasjonsNavn = innTur.EndeStasjon;
                    nyTurRad.EndeStasjon        = endeStasjonRad;
                }

                _db.Turer.Add(nyTurRad);
                await _db.SaveChangesAsync();

                return(true);
            }
            catch (Exception e)
            {
                _log.LogInformation(e.Message);
                return(false);
            }
        }
        public async Task <bool> EndreTur(Tur endreTur)
        {
            try
            {
                var tur = await _db.Turer.FindAsync(endreTur.TurId); //finner turen med id-en i db

                tur.Tid        = endreTur.Tid;                       //setter verdiene fra input (endreTur) til tur
                tur.Dato       = endreTur.Dato;
                tur.BarnePris  = endreTur.BarnePris;
                tur.VoksenPris = endreTur.VoksenPris;

                bool           startStasjonFunnet = false;
                List <Stasjon> alleStasjoner      = await _db.Stasjoner.ToListAsync(); //henter alle stasjonene

                foreach (var stasjon in alleStasjoner)                                 //looper gjennom alle stasjonene
                {
                    if (endreTur.StartStasjon.Equals(stasjon.StasjonsNavn))            //sjekker om stasjonen fra input er lik stasjon i db
                    {
                        tur.StartStasjon   = stasjon;                                  //hvis finner lik stasjon, blir stasjon satt til en som allerede finnes
                        startStasjonFunnet = true;

                        if (endreTur.StartStasjon == endreTur.EndeStasjon)
                        {
                            return(false);
                        }
                    }
                }

                if (!startStasjonFunnet)
                {
                    var startStasjonRad = new Stasjon();                  //hvis stasjon ikke fantes fra før av, blir ny stasjon opprettet
                    startStasjonRad.StasjonsNavn = endreTur.StartStasjon; //Nytt stasjonsnavn legges til i db
                    tur.StartStasjon             = startStasjonRad;       //tur sin startstasjon settes lik stasjonen fra input (endreTur)
                }

                bool endeStasjonFunnet = false;
                foreach (var stasjon in alleStasjoner)
                {
                    if (endreTur.EndeStasjon.Equals(stasjon.StasjonsNavn))
                    {
                        tur.EndeStasjon   = stasjon;
                        endeStasjonFunnet = true;

                        if (endreTur.EndeStasjon == endreTur.StartStasjon)
                        {
                            return(false);
                        }
                    }
                }

                if (!endeStasjonFunnet)
                {
                    var endeStasjonRad = new Stasjon();
                    endeStasjonRad.StasjonsNavn = endreTur.EndeStasjon;
                    tur.EndeStasjon             = endeStasjonRad;
                }

                await _db.SaveChangesAsync();

                return(true);
            }
            catch (Exception e)
            {
                _log.LogInformation(e.Message);
                return(false);
            }
        }
Ejemplo n.º 3
0
        public async Task <bool> EndreTur(Tur endreTur)
        {
            try
            {
                var tur = await _db.Turer.FindAsync(endreTur.TurId);

                tur.Tid        = endreTur.Tid;
                tur.Dato       = endreTur.Dato;
                tur.BarnePris  = endreTur.BarnePris;
                tur.VoksenPris = endreTur.VoksenPris;

                bool           startStasjonFunnet = false;
                List <Stasjon> alleStasjoner      = await _db.Stasjoner.ToListAsync();

                foreach (var stasjon in alleStasjoner)
                {
                    if (endreTur.StartStasjon.Equals(stasjon.StasjonsNavn))
                    {
                        tur.StartStasjon   = stasjon;
                        startStasjonFunnet = true;

                        if (endreTur.StartStasjon == endreTur.EndeStasjon)
                        {
                            return(false);
                        }
                    }
                }

                if (!startStasjonFunnet)
                {
                    var startStasjonRad = new Stasjon();
                    startStasjonRad.StasjonsNavn = endreTur.StartStasjon;
                    tur.StartStasjon             = startStasjonRad;
                }

                bool endeStasjonFunnet = false;
                foreach (var stasjon in alleStasjoner)
                {
                    if (endreTur.EndeStasjon.Equals(stasjon.StasjonsNavn))
                    {
                        tur.EndeStasjon   = stasjon;
                        endeStasjonFunnet = true;

                        if (endreTur.EndeStasjon == endreTur.StartStasjon)
                        {
                            return(false);
                        }
                    }
                }

                if (!endeStasjonFunnet)
                {
                    var endeStasjonRad = new Stasjon();
                    endeStasjonRad.StasjonsNavn = endreTur.EndeStasjon;
                    tur.EndeStasjon             = endeStasjonRad;
                }

                await _db.SaveChangesAsync();

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