/// <summary> /// Checks exchange rates. /// </summary> private void CheckExchangeRates() { if (ExchangeRatesCheck) { int currentSiteID = 0; // Check if the site is using global exchage rates if (!ECommerceSettings.UseGlobalExchangeRates(CMSContext.CurrentSiteName)) { currentSiteID = CMSContext.CurrentSiteID; } // Retrieve last valid exchange table ExchangeTableInfo et = ExchangeTableInfoProvider.GetLastValidExchangeTableInfo(CMSContext.CurrentSiteID); if (et == null) { DisplayMessage("com.settingschecker.emptyexchangerate"); } else { DataSet ds = CurrencyInfoProvider.GetCurrencies(currentSiteID, true); if (!DataHelper.DataSourceIsEmpty(ds)) { // Prepare where condition StringBuilder sb = new StringBuilder(); foreach (DataRow item in ds.Tables[0].Rows) { sb.Append(item["CurrencyID"] + ","); } sb.Remove(sb.Length - 1, 1); // Get exchange rate from global currency, if some global checkboxes are checked if (mGlobalUsage) { double exchangerateFromGlobalCurrency = ExchangeTableInfoProvider.GetLastExchangeRateFromGlobalMainCurrency(CMSContext.CurrentSiteID); if (exchangerateFromGlobalCurrency <= 0) { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } // Get all exchange rates for selected table DataSet exchangeDs = ExchangeRateInfoProvider.GetExchangeRates("(ExchangeTableID = " + et.ExchangeTableID + ") AND (ExchangeRateToCurrencyID IN (" + sb.ToString() + "))", null); if (DataHelper.DataSourceIsEmpty(exchangeDs)) { // If there is only one currency in dataset, do not show error message if (ds.Tables[0].Rows.Count > 1) { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } // Check if count of currencies is same in exchangetable else if ((ds.Tables[0].Rows.Count != exchangeDs.Tables[0].Rows.Count)) { // If we are using global objects, there will be one more currency if (mGlobalUsage) { if (ds.Tables[0].Rows.Count != exchangeDs.Tables[0].Rows.Count + 1) { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } else { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } else { foreach (DataRow item in exchangeDs.Tables[0].Rows) { if (item["ExchangeRateValue"] == null) { DisplayMessage("com.settingschecker.emptyexchangerate"); break; } } } } } } }
/// <summary> /// Checks exchange rates. /// </summary> private void CheckExchangeRates() { if (ExchangeRatesCheck) { int currentSiteID = 0; // Check if the site is using global exchange rates if (!ECommerceSettings.UseGlobalExchangeRates(SiteContext.CurrentSiteName)) { currentSiteID = SiteContext.CurrentSiteID; } // Retrieve last valid exchange table ExchangeTableInfo et = ExchangeTableInfoProvider.GetLastValidExchangeTableInfo(SiteContext.CurrentSiteID); if (et == null) { DisplayMessage("com.settingschecker.emptyexchangerate"); } else { DataSet ds = CurrencyInfoProvider.GetCurrencies(currentSiteID, true); if (!DataHelper.DataSourceIsEmpty(ds)) { // Get exchange rate from global currency, if some global checkboxes are checked if (mGlobalUsage) { double exchangeRateFromGlobalCurrency = ExchangeTableInfoProvider.GetLastExchangeRateFromGlobalMainCurrency(SiteContext.CurrentSiteID); if (exchangeRateFromGlobalCurrency <= 0) { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } // Prepare where condition var currencyIds = DataHelper.GetIntegerValues(ds.Tables[0], "CurrencyID"); // Get all exchange rates for selected table DataSet exchangeDs = ExchangeRateInfoProvider.GetExchangeRates(et.ExchangeTableID) .WhereIn("ExchangeRateToCurrencyID", currencyIds); if (DataHelper.DataSourceIsEmpty(exchangeDs)) { // If there is only one currency in dataset, do not show error message if (ds.Tables[0].Rows.Count > 1) { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } // Check if count of currencies is same in exchange table else if ((ds.Tables[0].Rows.Count != exchangeDs.Tables[0].Rows.Count)) { // If we are using global objects, there will be one more currency if (mGlobalUsage) { if (ds.Tables[0].Rows.Count != exchangeDs.Tables[0].Rows.Count + 1) { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } else { DisplayMessage("com.settingschecker.emptyexchangerate"); return; } } else { foreach (DataRow item in exchangeDs.Tables[0].Rows) { if (item["ExchangeRateValue"] == null) { DisplayMessage("com.settingschecker.emptyexchangerate"); break; } } } } } } }