TheAirline.Models.Airports.Airport.GetCurrentAirportFacility C# (CSharp) Method

GetCurrentAirportFacility() public method

public GetCurrentAirportFacility ( Airline airline, AirportFacility type ) : AirportFacility
airline TheAirline.Models.Airlines.Airline
type AirportFacility
return AirportFacility
        public AirportFacility GetCurrentAirportFacility(Airline airline, AirportFacility.FacilityType type)
        {
            List<AirportFacility> facilities;

            var tFacilities = new List<AirlineAirportFacility>(_facilities);
            lock (_facilities)
            {
                facilities = (from f in tFacilities
                              where
                                  f.Airline == airline && f.Facility.Type == type
                                  && f.FinishedDate <= GameObject.GetInstance().GameTime
                              orderby f.FinishedDate descending
                              select f.Facility).ToList();
                int numberOfFacilities = facilities.Count();

                if (numberOfFacilities == 0 && airline != null)
                {
                    AirportFacility noneFacility = AirportFacilities.GetFacilities(type).Find(f => f.TypeLevel == 0);
                    AddAirportFacility(airline, noneFacility, GameObject.GetInstance().GameTime);

                    facilities.Add(noneFacility);
                }
            }
            return facilities.FirstOrDefault();
        }