/// <summary>
        /// Exports the providers to a serialization object.
        /// </summary>
        /// <returns></returns>
        internal APIProvidersSettings Export()
        {
            APIProvidersSettings serial = new APIProvidersSettings {
                CurrentProviderName = CurrentProvider.Name
            };

            // Providers
            foreach (APIProvider provider in CustomProviders)
            {
                SerializableAPIProvider serialProvider = new SerializableAPIProvider
                {
                    Name    = provider.Name,
                    Address = provider.Url.AbsoluteUri,
                    SupportsCompressedResponse = provider.SupportsCompressedResponse
                };

                serial.CustomProviders.Add(serialProvider);

                // Methods
                serialProvider.Methods.Clear();
                foreach (APIMethod method in provider.Methods.Where(method => !String.IsNullOrWhiteSpace(method.Path)))
                {
                    serialProvider.Methods.Add(new SerializableAPIMethod
                    {
                        MethodName = method.Method.ToString(),
                        Path       = method.Path
                    });
                }
            }

            return(serial);
        }
        /// <summary>
        /// Update the providers with the provided serialization object.
        /// </summary>
        /// <param name="serial"></param>
        internal void Import(APIProvidersSettings serial)
        {
            m_customProviders.Clear();
            CurrentProvider = DefaultProvider;

            // Providers
            foreach (SerializableAPIProvider sProvider in serial.CustomProviders)
            {
                APIProvider provider = new APIProvider
                {
                    Name = sProvider.Name,
                    Url  = new Uri(sProvider.Address),
                    SupportsCompressedResponse = sProvider.SupportsCompressedResponse
                };

                // Providers' methods
                foreach (SerializableAPIMethod sMethod in sProvider.Methods)
                {
                    Enum method = APIMethods.Methods.FirstOrDefault(x => x.ToString() == sMethod.MethodName);
                    if (method == null)
                    {
                        continue;
                    }

                    APIMethod apiMethod = provider.GetMethod(method);
                    if (apiMethod != null)
                    {
                        apiMethod.Path = sMethod.Path;
                    }
                }

                // Add this provider to our inner list
                m_customProviders.Add(provider);
            }

            // Current provider
            APIProvider newCurrentProvider = this[serial.CurrentProviderName];

            if (newCurrentProvider != null)
            {
                CurrentProvider = newCurrentProvider;
            }

            // Test Provider is only available in debug mode
            if (serial.CurrentProviderName == TestProvider.Name)
            {
                CurrentProvider = EveMonClient.IsDebugBuild ? TestProvider : DefaultProvider;
            }
        }
Exemplo n.º 3
0
 public SerializableSettings()
 {
     m_plans                     = new Collection <SerializablePlan>();
     m_apiKeys                   = new Collection <SerializableAPIKey>();
     m_characters                = new Collection <SerializableSettingsCharacter>();
     m_monitoredCharacters       = new Collection <MonitoredCharacterSettings>();
     CloudStorageServiceProvider = new CloudStorageServiceProviderSettings();
     PortableEveInstallations    = new PortableEveInstallationsSettings();
     Notifications               = new NotificationSettings();
     APIProviders                = new APIProvidersSettings();
     LoadoutsProvider            = new LoadoutsProviderSettings();
     MarketPricer                = new MarketPricerSettings();
     Exportation                 = new ExportationSettings();
     Scheduler                   = new SchedulerSettings();
     Calendar                    = new CalendarSettings();
     Updates                     = new UpdateSettings();
     Proxy = new ProxySettings();
     G15   = new G15Settings();
     UI    = new UISettings();
 }
Exemplo n.º 4
0
 public APISettingsForm(APIProvidersSettings providers, SerializableAPIProvider newProvider)
 {
     InitializeComponent();
     m_providers = providers;
     m_provider  = newProvider;
 }