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

            // Providers
            foreach (var provider in CustomProviders)
            {
                var serialProvider = new SerializableAPIProvider {
                    Name = provider.Name, Url = provider.Url
                };
                serial.CustomProviders.Add(serialProvider);

                // Methods
                serialProvider.Methods.Clear();
                foreach (var method in provider.Methods)
                {
                    serialProvider.Methods.Add(new SerializableAPIMethod {
                        Method = method.Method, Path = method.Path
                    });
                }
            }

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

            // Providers
            foreach (var sProvider in serial.CustomProviders)
            {
                var provider = new APIProvider();
                provider.Name = sProvider.Name;
                provider.Url  = sProvider.Url;

                // Providers' methods
                foreach (var sMethod in sProvider.Methods)
                {
                    var method = provider.GetMethod(sMethod.Method);
                    if (method != null)
                    {
                        method.Path = sMethod.Path;
                    }
                }

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

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

            if (newCurrentProvider != null)
            {
                m_currentProvider = newCurrentProvider;
            }
        }
Exemple #3
0
 public APISettingsForm(SerializableAPIProviders providers, SerializableAPIProvider newProvider)
 {
     InitializeComponent();
     m_providers = providers;
     m_provider  = newProvider;
 }