/// <summary>
        /// Add a new flight property definition
        /// </summary>
        /// <param name="name"></param>
        /// <param name="type"></param>
        /// <param name="isSingleInstance"></param>
        public FlightProperty AddProperty(string name, FlightPropertyDataType type, bool isSingleInstance)
        {
            FlightProperty property = _context.FlightProperties.FirstOrDefault(p => p.Name == name);

            ThrowIfPropertyFound(property, name);

            property = new FlightProperty
            {
                Name             = name,
                DataType         = type,
                IsSingleInstance = isSingleInstance
            };

            _context.FlightProperties.Add(property);
            return(property);
        }
        /// <summary>
        /// Add a new flight property definition
        /// </summary>
        /// <param name="name"></param>
        /// <param name="type"></param>
        /// <param name="isSingleInstance"></param>
        /// <returns></returns>
        public async Task <FlightProperty> AddPropertyAsync(string name, FlightPropertyDataType type, bool isSingleInstance)
        {
            FlightProperty property = await _context.FlightProperties.FirstOrDefaultAsync(p => p.Name == name);

            ThrowIfPropertyFound(property, name);

            property = new FlightProperty
            {
                Name             = name,
                DataType         = type,
                IsSingleInstance = isSingleInstance
            };

            await _context.FlightProperties.AddAsync(property);

            return(property);
        }