/// <summary>
 /// Gets the default tax provider.
 /// </summary>
 /// <returns></returns>
 public static ITaxProvider GetDefaultTaxProvider()
 {
     DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
       TaxServiceSettings taxServiceSettings = databaseConfigurationProvider.FetchConfigurationByName(TaxServiceSettings.SECTION_NAME) as TaxServiceSettings;
       string defaultTaxProviderName = taxServiceSettings.DefaultProvider;
       if (String.IsNullOrEmpty(defaultTaxProviderName))
     return null;
       ProviderSettings ps = taxServiceSettings.ProviderSettingsCollection[defaultTaxProviderName];
       ITaxProvider taxProvider = Activator.CreateInstance(Type.GetType(ps.Type), ps.Arguments) as ITaxProvider;
       Validator.ValidateObjectIsNotNull(taxProvider, TAX_PROVIDER);
       return taxProvider;
 }
 /// <summary>
 /// Removes the shipping provider.
 /// </summary>
 /// <param name="providerName">Name of the provider.</param>
 public static void RemoveShippingProvider(string providerName, string userName)
 {
     Validator.ValidateStringArgumentIsNotNullOrEmptyString(providerName, PROVIDER_NAME);
       DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
       ShippingServiceSettings shippingServiceSettings =
     databaseConfigurationProvider.FetchConfigurationByName(ShippingServiceSettings.SECTION_NAME) as ShippingServiceSettings;
       if(providerName == shippingServiceSettings.DefaultProvider) {
     throw new InvalidOperationException(Strings.ResourceManager.GetString("UnableToDeleteDefaultProvider"));
       }
       ProviderSettings providerSettings = shippingServiceSettings.ProviderSettingsCollection.Find(delegate(ProviderSettings theProviderSettings) {return theProviderSettings.Name == providerName;});
       if(providerSettings != null) {
     shippingServiceSettings.ProviderSettingsCollection.Remove(providerSettings);
     databaseConfigurationProvider.SaveConfiguration(ShippingServiceSettings.SECTION_NAME, shippingServiceSettings, userName);
       }
 }
 /// <summary>
 /// Loads the providers.
 /// </summary>
 private void LoadProviders()
 {
     DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
       ShippingServiceSettings shippingServiceSettings =
     databaseConfigurationProvider.FetchConfigurationByName(ShippingServiceSettings.SECTION_NAME) as ShippingServiceSettings;
       IShippingProvider shippingProvider = null;
       Type type = null;
       foreach (ProviderSettings providerSettings in shippingServiceSettings.ProviderSettingsCollection) {
     type = Type.GetType(providerSettings.Type);
     shippingProvider = Activator.CreateInstance(type, providerSettings.Arguments) as IShippingProvider;
     Validator.ValidateObjectIsNotNull(shippingProvider, SHIPPING_PROVIDER);
     _shippingProviderCollection.Add(shippingProvider);
       }
 }
 /// <summary>
 /// Fetches the shipping service settings.
 /// </summary>
 /// <returns></returns>
 private static ShippingServiceSettings FetchShippingServiceSettings()
 {
     DatabaseConfigurationProvider _databaseConfigurationProvider = new DatabaseConfigurationProvider();
       ShippingServiceSettings shippingServiceSettings =
     _databaseConfigurationProvider.FetchConfigurationByName(ShippingServiceSettings.SECTION_NAME) as ShippingServiceSettings;
       return shippingServiceSettings;
 }
 /// <summary>
 /// Sets the default shipping provider.
 /// </summary>
 /// <param name="defaultTaxProvider">The default tax provider.</param>
 /// <returns></returns>
 public static int SetDefaultShippingProvider(string defaultShippingProvider, string userName)
 {
     Validator.ValidateStringArgumentIsNotNullOrEmptyString(defaultShippingProvider, DEFAULT_SHIPPING_PROVIDER);
       DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
       ShippingServiceSettings shippingServiceSettings =
     databaseConfigurationProvider.FetchConfigurationByName(ShippingServiceSettings.SECTION_NAME) as ShippingServiceSettings;
       shippingServiceSettings.DefaultProvider = defaultShippingProvider;
       int id = databaseConfigurationProvider.SaveConfiguration(ShippingServiceSettings.SECTION_NAME, shippingServiceSettings, userName);
       return id;
 }
 /// <summary>
 /// Loads this instance.
 /// </summary>
 /// <returns></returns>
 public static SiteSettings Load()
 {
     try {
     DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
     SiteSettings siteSettings = databaseConfigurationProvider.FetchConfigurationByName(SiteSettings.SECTION_NAME) as SiteSettings;
     return siteSettings;
       }
       catch(Exception ex) {
     throw new Exception("Please make sure that you setup the Database, and the Connection String in the connectionString.config file.");
       }
 }
 /// <summary>
 /// Fetches the payment service settings.
 /// </summary>
 /// <returns></returns>
 private static PaymentServiceSettings FetchPaymentServiceSettings()
 {
     DatabaseConfigurationProvider _databaseConfigurationProvider = new DatabaseConfigurationProvider();
       PaymentServiceSettings paymentServiceSettings =
     _databaseConfigurationProvider.FetchConfigurationByName(PaymentServiceSettings.SECTION_NAME) as PaymentServiceSettings;
       return paymentServiceSettings;
 }
 /// <summary>
 /// Sets the default payment provider.
 /// </summary>
 /// <param name="defaultPaymentProvider">The default payment provider.</param>
 /// <returns></returns>
 public static int SetDefaultPaymentProvider(string defaultPaymentProvider, string userName)
 {
     Validator.ValidateStringArgumentIsNotNullOrEmptyString(defaultPaymentProvider, DEFAULT_PAYMENT_PROVIDER);
       DatabaseConfigurationProvider _databaseConfigurationProvider = new DatabaseConfigurationProvider();
       PaymentServiceSettings paymentServiceSettings =
       _databaseConfigurationProvider.FetchConfigurationByName(PaymentServiceSettings.SECTION_NAME) as PaymentServiceSettings;
       paymentServiceSettings.DefaultProvider = defaultPaymentProvider;
       int id = _databaseConfigurationProvider.SaveConfiguration(PaymentServiceSettings.SECTION_NAME, paymentServiceSettings, userName);
       return id;
 }
 /// <summary>
 /// Loads this instance.
 /// </summary>
 /// <returns></returns>
 public static MailSettings Load()
 {
     DatabaseConfigurationProvider databaseConfigurationprovider = new DatabaseConfigurationProvider();
       MailSettings mailSettings = databaseConfigurationprovider.FetchConfigurationByName(MailSettings.SECTION_NAME) as MailSettings;
       return mailSettings;
 }
 /// <summary>
 /// Loads the providers.
 /// </summary>
 private void LoadProviders()
 {
     DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
       TaxServiceSettings taxServiceSettings =
     databaseConfigurationProvider.FetchConfigurationByName(TaxServiceSettings.SECTION_NAME) as TaxServiceSettings;
       ITaxProvider taxProvider = null;
       Type type = null;
       foreach (ProviderSettings providerSettings in taxServiceSettings.ProviderSettingsCollection) {
     //We only want to load the defaultProvider
     if (taxServiceSettings.DefaultProvider == providerSettings.Name) {
       type = Type.GetType(providerSettings.Type);
       taxProvider = Activator.CreateInstance(type, providerSettings.Arguments) as ITaxProvider;
       Validator.ValidateObjectIsNotNull(taxProvider, TAX_PROVIDER);
       _taxProviderCollection.Add(taxProvider);
     }
       }
 }
 /// <summary>
 /// Fetches the tax service settings.
 /// </summary>
 /// <returns></returns>
 private static TaxServiceSettings FetchTaxServiceSettings()
 {
     DatabaseConfigurationProvider _databaseConfigurationProvider = new DatabaseConfigurationProvider();
       TaxServiceSettings taxServiceSettings =
     _databaseConfigurationProvider.FetchConfigurationByName(TaxServiceSettings.SECTION_NAME) as TaxServiceSettings;
       return taxServiceSettings;
 }
 /// <summary> 
 /// Sets the default tax provider.
 /// </summary>
 /// <param name="defaultTaxProvider">The default tax provider.</param>
 /// <returns></returns>
 public static int SetDefaultTaxProvider(string defaultTaxProvider, string userName)
 {
     Validator.ValidateStringArgumentIsNotNullOrEmptyString(defaultTaxProvider, DEFAULT_TAX_PROVIDER);
       DatabaseConfigurationProvider databaseConfigurationProvider = new DatabaseConfigurationProvider();
       TaxServiceSettings taxServiceSettings =
     databaseConfigurationProvider.FetchConfigurationByName(TaxServiceSettings.SECTION_NAME) as TaxServiceSettings;
       taxServiceSettings.DefaultProvider = defaultTaxProvider;
       int id = databaseConfigurationProvider.SaveConfiguration(TaxServiceSettings.SECTION_NAME, taxServiceSettings, userName);
       return id;
 }