Example #1
0
        public void InsertHangar()
        {
            if (String.IsNullOrEmpty(InsertHangarNavn))
            {
                throw new ArgumentException("Du mangler at indtaste en hangar");
            }
            Hangar hangar = new Hangar(InsertHangarNavn);

            Hangars.Add(hangar);
            _dtoHangar.PostHangar(hangar);
            _dtoHangar.Loadhangar();
        }
Example #2
0
        public void LayLinks()
        {
            if (_hasNexts == null)
            {
                throw new InvalidOperationException();
            }
            // Loop over array.
            for (int y = 0; y < _hasNexts.Length; y++)
            {
                for (int x = 0; x < _hasNexts[y].Length; x++)
                {
                    // Check is item is null
                    if (_hasNexts[y][x] == null)
                    {
                        continue;
                    }
                    // Yeey, we found a item, Lets check its identity.
                    switch (_hasNexts[y][x])
                    {
                    case Hangar hangar:
                        // Look right for a tracklink and link to it.
                        if (IsType <Track>(y, x + 1))
                        {
                            hangar.Next = _hasNexts[y] [x + 1];
                            Hangars.Add(hangar);
                        }
                        continue;

                    case Yard yard:
                        // Look Left for another yard.
                        if (IsType <Yard>(y, x - 1))
                        {
                            yard.Next = _hasNexts[y][x - 1];
                        }
                        continue;

                    case Turnout1To2 turnout1To2:
                        // Look up and down.
                        LinkTurnout(turnout1To2, y, x);
                        // Look left
                        if (IsType <Track>(y, x - 1))
                        {
                            turnout1To2.Next = turnout1To2.optionDown;
                        }
                        turnout1To2.ChangeDirection();
                        turnout1To2.ChangeDirection();
                        continue;

                    case Turnout2To1 turnout2To1:
                        // Look up and down.
                        LinkTurnout(turnout2To1, y, x);
                        // Look right
                        if (IsType <Track>(y, x + 1))
                        {
                            turnout2To1.Next = _hasNexts[y][x + 1];
                        }
                        turnout2To1.ChangeDirection();
                        turnout2To1.ChangeDirection();
                        continue;

                    case WaterQuay waterQuay:
                        //Look left
                        AddNext <WaterLink>(waterQuay, y, x - 1);
                        //Lood down
                        waterQuay.track = (Track)_hasNexts[y + 1][x];
                        this.quay       = waterQuay;
                        continue;

                    case WaterLink waterLink when waterLink.GetType() == typeof(WaterLink):
                        //Look left
                        AddNext <WaterLink>(waterLink, y, x - 1);

                        firstRiver = (WaterLink)waterLink;
                        continue;

                    case Track track when track.GetType() == typeof(Track):
                        LinkTracks(track, y, x);

                        continue;
                    }
                }
            }
        }