Exemplo n.º 1
0
        /// <summary>
        /// Saves the plugin's options.
        /// </summary>
        /// <param name="plugin"></param>
        /// <param name="filterConfiguration"></param>
        /// <returns>
        /// True if the configuration was saved, false if the configuration was out-of-date.
        /// </returns>
        public static bool Save(Plugin plugin, FilterConfiguration filterConfiguration)
        {
            var result = false;

            lock (_SyncLock) {
                var folder = Folder;
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }

                var currentSettings = Load();
                result = currentSettings.DataVersion == filterConfiguration.DataVersion;
                if (result)
                {
                    ++filterConfiguration.DataVersion;

                    var json = JsonConvert.SerializeObject(filterConfiguration);
                    File.WriteAllText(FileName, json);
                }
            }

            if (result)
            {
                OnFilterConfigurationChanged(new EventArgs <FilterConfiguration>(filterConfiguration));
            }

            return(result);
        }
Exemplo n.º 2
0
            /// <summary>
            /// Applies changes to the filter settings.
            /// </summary>
            /// <param name="filterConfiguration"></param>
            public void ApplyFilterConfigurationChange(FilterConfiguration filterConfiguration)
            {
                using (_Lock.AcquireLock()) {
                    _ProhibitMlat  = filterConfiguration.ProhibitMlat;
                    _ProhibitIcaos = filterConfiguration.ProhibitIcaos;

                    FillIcaoNumbers(filterConfiguration);
                    FillIcaoRanges(filterConfiguration);
                }
            }
Exemplo n.º 3
0
        /// <summary>
        /// Loads the filter configuration.
        /// </summary>
        /// <returns></returns>
        public static FilterConfiguration Load()
        {
            FilterConfiguration result = null;

            var fileName = FileName;

            if (File.Exists(fileName))
            {
                var fileText = File.ReadAllText(fileName);
                result = JsonConvert.DeserializeObject <FilterConfiguration>(fileText);
            }

            return(result ?? new FilterConfiguration());
        }
Exemplo n.º 4
0
 private void FillIcaoNumbers(FilterConfiguration filterConfiguration)
 {
     _IcaoNumbers.Clear();
     foreach (var icao in filterConfiguration.Icaos)
     {
         var normalisedIcao = NormaliseIcao(icao);
         if (normalisedIcao.Length == 6)
         {
             var icaoNumber = CustomConvert.Icao24(normalisedIcao);
             if (icaoNumber != -1 && !_IcaoNumbers.Contains(icaoNumber))
             {
                 _IcaoNumbers.Add(icaoNumber);
             }
         }
     }
 }
Exemplo n.º 5
0
 private void FillIcaoRanges(FilterConfiguration filterConfiguration)
 {
     _IcaoRanges.Clear();
     foreach (var icaoRange in filterConfiguration.IcaoRanges)
     {
         var startIcao = NormaliseIcao(icaoRange.Start);
         var endIcao   = NormaliseIcao(icaoRange.End);
         if (startIcao.Length == 6 && endIcao.Length == 6)
         {
             var startNumber = CustomConvert.Icao24(startIcao);
             var endNumber   = CustomConvert.Icao24(endIcao);
             if (startNumber != -1 && endNumber != -1 && startNumber <= endNumber)
             {
                 var pair = new Pair <int>(startNumber, endNumber);
                 if (!_IcaoRanges.Contains(pair))
                 {
                     _IcaoRanges.Add(pair);
                 }
             }
         }
     }
 }