예제 #1
0
        /// <summary>
        /// Gets a language
        /// </summary>
        /// <param name="languageId">Language identifier</param>
        /// <returns>Language</returns>
        public static Language GetLanguageById(int languageId)
        {
            if (languageId == 0)
            {
                return(null);
            }

            string key  = string.Format(LANGUAGES_BY_ID_KEY, languageId);
            object obj2 = NopStaticCache.Get(key);

            if (LanguageManager.CacheEnabled && (obj2 != null))
            {
                return((Language)obj2);
            }

            var context = ObjectContextHelper.CurrentObjectContext;
            var query   = from l in context.Languages
                          where l.LanguageId == languageId
                          select l;
            var language = query.SingleOrDefault();

            if (LanguageManager.CacheEnabled)
            {
                NopStaticCache.Max(key, language);
            }
            return(language);
        }
예제 #2
0
        /// <summary>
        /// Inserts a language
        /// </summary>
        /// <param name="name">The name</param>
        /// <param name="languageCulture">The language culture</param>
        /// <param name="flagImageFileName">The flag image file name</param>
        /// <param name="published">A value indicating whether the language is published</param>
        /// <param name="displayOrder">The display order</param>
        /// <returns>Language</returns>
        public static Language InsertLanguage(string name, string languageCulture,
                                              string flagImageFileName, bool published, int displayOrder)
        {
            name              = CommonHelper.EnsureMaximumLength(name, 100);
            languageCulture   = CommonHelper.EnsureMaximumLength(languageCulture, 20);
            flagImageFileName = CommonHelper.EnsureMaximumLength(flagImageFileName, 50);

            var context = ObjectContextHelper.CurrentObjectContext;

            var language = context.Languages.CreateObject();

            language.Name              = name;
            language.LanguageCulture   = languageCulture;
            language.FlagImageFileName = flagImageFileName;
            language.Published         = published;
            language.DisplayOrder      = displayOrder;

            context.Languages.AddObject(language);
            context.SaveChanges();

            if (LanguageManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LANGUAGES_PATTERN_KEY);
            }
            return(language);
        }
예제 #3
0
        /// <summary>
        /// Updates the locale string resource
        /// </summary>
        /// <param name="localeStringResourceId">The locale string resource identifier</param>
        /// <param name="languageId">The language identifier</param>
        /// <param name="resourceName">The resource name</param>
        /// <param name="resourceValue">The resource value</param>
        /// <returns>Locale string resource</returns>
        public static LocaleStringResource UpdateLocaleStringResource(int localeStringResourceId,
                                                                      int languageId, string resourceName, string resourceValue)
        {
            resourceName = CommonHelper.EnsureMaximumLength(resourceName, 200);

            var localeStringResource = GetLocaleStringResourceById(localeStringResourceId);

            if (localeStringResource == null)
            {
                return(null);
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(localeStringResource))
            {
                context.LocaleStringResources.Attach(localeStringResource);
            }

            localeStringResource.LanguageId    = languageId;
            localeStringResource.ResourceName  = resourceName;
            localeStringResource.ResourceValue = resourceValue;
            context.SaveChanges();

            if (LocaleStringResourceManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LOCALSTRINGRESOURCES_PATTERN_KEY);
            }
            return(localeStringResource);
        }
예제 #4
0
        /// <summary>
        /// Inserts all locale string resources from XML
        /// </summary>
        /// <param name="languageId">The Language identifier</param>
        /// <param name="xml">The XML package</param>
        public static void InsertAllLocaleStringResourcesFromXml(int languageId, string xml)
        {
            var context = ObjectContextHelper.CurrentObjectContext;
            //long-running query
            int?timeout = context.CommandTimeout;

            try
            {
                context.CommandTimeout = 600;
                context.Sp_LanguagePackImport(languageId, xml);
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc.ToString());
                throw;
            }
            finally
            {
                context.CommandTimeout = timeout;
            }

            if (LocaleStringResourceManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LOCALSTRINGRESOURCES_PATTERN_KEY);
            }
        }
예제 #5
0
        /// <summary>
        /// Updates a language
        /// </summary>
        /// <param name="languageId">Language identifier</param>
        /// <param name="name">The name</param>
        /// <param name="languageCulture">The language culture</param>
        /// <param name="flagImageFileName">The flag image file name</param>
        /// <param name="published">A value indicating whether the language is published</param>
        /// <param name="displayOrder">The display order</param>
        /// <returns>Language</returns>
        public static Language UpdateLanguage(int languageId,
                                              string name, string languageCulture,
                                              string flagImageFileName, bool published, int displayOrder)
        {
            name              = CommonHelper.EnsureMaximumLength(name, 100);
            languageCulture   = CommonHelper.EnsureMaximumLength(languageCulture, 20);
            flagImageFileName = CommonHelper.EnsureMaximumLength(flagImageFileName, 50);

            var language = GetLanguageById(languageId);

            if (language == null)
            {
                return(null);
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(language))
            {
                context.Languages.Attach(language);
            }

            language.Name              = name;
            language.LanguageCulture   = languageCulture;
            language.FlagImageFileName = flagImageFileName;
            language.Published         = published;
            language.DisplayOrder      = displayOrder;
            context.SaveChanges();

            if (LanguageManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LANGUAGES_PATTERN_KEY);
            }
            return(language);
        }
예제 #6
0
        /// <summary>
        /// Gets a currency
        /// </summary>
        /// <param name="currencyId">Currency identifier</param>
        /// <returns>Currency</returns>
        public static Currency GetCurrencyById(int currencyId)
        {
            if (currencyId == 0)
            {
                return(null);
            }

            string key  = string.Format(CURRENCIES_BY_ID_KEY, currencyId);
            object obj2 = NopStaticCache.Get(key);

            if (CurrencyManager.CacheEnabled && (obj2 != null))
            {
                return((Currency)obj2);
            }

            var context = ObjectContextHelper.CurrentObjectContext;
            var query   = from c in context.Currencies
                          where c.CurrencyId == currencyId
                          select c;
            var currency = query.SingleOrDefault();

            if (CurrencyManager.CacheEnabled)
            {
                NopStaticCache.Max(key, currency);
            }
            return(currency);
        }
예제 #7
0
        /// <summary>
        /// Updates a setting
        /// </summary>
        /// <param name="settingId">Setting identifier</param>
        /// <param name="name">The name</param>
        /// <param name="value">The value</param>
        /// <param name="description">The description</param>
        /// <returns>Setting</returns>
        public static Setting UpdateSetting(int settingId, string name, string value, string description)
        {
            name  = CommonHelper.EnsureMaximumLength(name, 200);
            value = CommonHelper.EnsureMaximumLength(value, 2000);

            var setting = GetSettingById(settingId);

            if (setting == null)
            {
                return(null);
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(setting))
            {
                context.Settings.Attach(setting);
            }

            setting.Name        = name;
            setting.Value       = value;
            setting.Description = description;
            context.SaveChanges();

            if (SettingManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(SETTINGS_ALL_KEY);
            }

            return(setting);
        }
예제 #8
0
        /// <summary>
        /// Updates the currency
        /// </summary>
        /// <param name="currencyId">Currency identifier</param>
        /// <param name="name">The name</param>
        /// <param name="currencyCode">The currency code</param>
        /// <param name="rate">The rate</param>
        /// <param name="displayLocale">The display locale</param>
        /// <param name="customFormatting">The custom formatting</param>
        /// <param name="published">A value indicating whether the entity is published</param>
        /// <param name="displayOrder">The display order</param>
        /// <param name="createdOn">The date and time of instance creation</param>
        /// <param name="updatedOn">The date and time of instance update</param>
        /// <returns>A currency</returns>
        public static Currency UpdateCurrency(int currencyId, string name,
                                              string currencyCode, decimal rate, string displayLocale,
                                              string customFormatting, bool published, int displayOrder,
                                              DateTime createdOn, DateTime updatedOn)
        {
            name             = CommonHelper.EnsureMaximumLength(name, 50);
            currencyCode     = CommonHelper.EnsureMaximumLength(currencyCode, 5);
            displayLocale    = CommonHelper.EnsureMaximumLength(displayLocale, 50);
            customFormatting = CommonHelper.EnsureMaximumLength(customFormatting, 50);

            try
            {
                CultureInfo ci = CultureInfo.GetCultureInfo(displayLocale);
            }
            catch (Exception)
            {
                throw new NopException("Specified display locale culture is not supported");
            }

            var currency = GetCurrencyById(currencyId);

            if (currency == null)
            {
                return(null);
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(currency))
            {
                context.Currencies.Attach(currency);
            }

            currency.Name             = name;
            currency.CurrencyCode     = currencyCode;
            currency.Rate             = rate;
            currency.DisplayLocale    = displayLocale;
            currency.CustomFormatting = customFormatting;
            currency.Published        = published;
            currency.DisplayOrder     = displayOrder;
            currency.CreatedOn        = createdOn;
            currency.UpdatedOn        = updatedOn;
            context.SaveChanges();


            if (CurrencyManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(CURRENCIES_PATTERN_KEY);
            }
            return(currency);
        }
예제 #9
0
        private static Dictionary <Guid, OnlineUserInfo> GetRegisteredUserList()
        {
            string key = "Nop.OnlineUserList.Registered";
            Dictionary <Guid, OnlineUserInfo> obj2 = NopStaticCache.Get(key) as Dictionary <Guid, OnlineUserInfo>;

            if (obj2 != null)
            {
                return(obj2);
            }
            else
            {
                obj2 = new Dictionary <Guid, OnlineUserInfo>();
                NopStaticCache.Max(key, obj2);
            }

            return(obj2);
        }
예제 #10
0
        /// <summary>
        /// Inserts a locale string resource
        /// </summary>
        /// <param name="languageId">The language identifier</param>
        /// <param name="resourceName">The resource name</param>
        /// <param name="resourceValue">The resource value</param>
        /// <returns>Locale string resource</returns>
        public static LocaleStringResource InsertLocaleStringResource(int languageId,
                                                                      string resourceName, string resourceValue)
        {
            resourceName = CommonHelper.EnsureMaximumLength(resourceName, 200);

            var context = ObjectContextHelper.CurrentObjectContext;

            var localeStringResource = context.LocaleStringResources.CreateObject();

            localeStringResource.LanguageId    = languageId;
            localeStringResource.ResourceName  = resourceName;
            localeStringResource.ResourceValue = resourceValue;

            context.LocaleStringResources.AddObject(localeStringResource);
            context.SaveChanges();

            if (LocaleStringResourceManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LOCALSTRINGRESOURCES_PATTERN_KEY);
            }
            return(localeStringResource);
        }
예제 #11
0
        /// <summary>
        /// Gets all settings
        /// </summary>
        /// <returns>Setting collection</returns>
        public static Dictionary <string, Setting> GetAllSettings()
        {
            string key  = SETTINGS_ALL_KEY;
            object obj2 = NopStaticCache.Get(key);

            if (SettingManager.CacheEnabled && (obj2 != null))
            {
                return((Dictionary <string, Setting>)obj2);
            }

            var context = ObjectContextHelper.CurrentObjectContext;
            var query   = from s in context.Settings
                          orderby s.Name
                          select s;
            var settings = query.ToDictionary(s => s.Name.ToLowerInvariant());

            if (SettingManager.CacheEnabled)
            {
                NopStaticCache.Max(key, settings);
            }
            return(settings);
        }
예제 #12
0
        /// <summary>
        /// Deletes a locale string resource
        /// </summary>
        /// <param name="localeStringResourceId">Locale string resource identifier</param>
        public static void DeleteLocaleStringResource(int localeStringResourceId)
        {
            var localeStringResource = GetLocaleStringResourceById(localeStringResourceId);

            if (localeStringResource == null)
            {
                return;
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(localeStringResource))
            {
                context.LocaleStringResources.Attach(localeStringResource);
            }
            context.DeleteObject(localeStringResource);
            context.SaveChanges();

            if (LocaleStringResourceManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LOCALSTRINGRESOURCES_PATTERN_KEY);
            }
        }
예제 #13
0
        /// <summary>
        /// Gets all languages
        /// </summary>
        /// <param name="showHidden">A value indicating whether to show hidden records</param>
        /// <returns>Language collection</returns>
        public static List <Language> GetAllLanguages(bool showHidden)
        {
            string key  = string.Format(LANGUAGES_ALL_KEY, showHidden);
            object obj2 = NopStaticCache.Get(key);

            if (LanguageManager.CacheEnabled && (obj2 != null))
            {
                return((List <Language>)obj2);
            }

            var context = ObjectContextHelper.CurrentObjectContext;
            var query   = from l in context.Languages
                          orderby l.DisplayOrder
                          where showHidden || l.Published
                          select l;
            var languages = query.ToList();

            if (LanguageManager.CacheEnabled)
            {
                NopStaticCache.Max(key, languages);
            }
            return(languages);
        }
예제 #14
0
        /// <summary>
        /// Deletes a language
        /// </summary>
        /// <param name="languageId">Language identifier</param>
        public static void DeleteLanguage(int languageId)
        {
            var language = GetLanguageById(languageId);

            if (language == null)
            {
                return;
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(language))
            {
                context.Languages.Attach(language);
            }
            context.DeleteObject(language);
            context.SaveChanges();

            if (LanguageManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(LANGUAGES_PATTERN_KEY);
            }
        }
예제 #15
0
        /// <summary>
        /// Gets all locale string resources by language identifier
        /// </summary>
        /// <param name="languageId">Language identifier</param>
        /// <returns>Locale string resource collection</returns>
        public static Dictionary <string, LocaleStringResource> GetAllResourcesByLanguageId(int languageId)
        {
            string key  = string.Format(LOCALSTRINGRESOURCES_ALL_KEY, languageId);
            object obj2 = NopStaticCache.Get(key);

            if (LocaleStringResourceManager.CacheEnabled && (obj2 != null))
            {
                return((Dictionary <string, LocaleStringResource>)obj2);
            }

            var context = ObjectContextHelper.CurrentObjectContext;
            var query   = from l in context.LocaleStringResources
                          orderby l.ResourceName
                          where l.LanguageId == languageId
                          select l;
            var localeStringResourceDictionary = query.ToDictionary(s => s.ResourceName.ToLowerInvariant());

            if (LocaleStringResourceManager.CacheEnabled)
            {
                NopStaticCache.Max(key, localeStringResourceDictionary);
            }
            return(localeStringResourceDictionary);
        }
예제 #16
0
        /// <summary>
        /// Deletes currency
        /// </summary>
        /// <param name="currencyId">Currency identifier</param>
        public static void DeleteCurrency(int currencyId)
        {
            var currency = GetCurrencyById(currencyId);

            if (currency == null)
            {
                return;
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(currency))
            {
                context.Currencies.Attach(currency);
            }
            context.DeleteObject(currency);
            context.SaveChanges();

            if (CurrencyManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(CURRENCIES_PATTERN_KEY);
            }
        }
예제 #17
0
        /// <summary>
        /// Gets all currencies
        /// </summary>
        /// <param name="showHidden">A value indicating whether to show hidden records</param>
        /// <returns>Currency collection</returns>
        public static List <Currency> GetAllCurrencies(bool showHidden)
        {
            string key  = string.Format(CURRENCIES_ALL_KEY, showHidden);
            object obj2 = NopStaticCache.Get(key);

            if (CurrencyManager.CacheEnabled && (obj2 != null))
            {
                return((List <Currency>)obj2);
            }

            var context = ObjectContextHelper.CurrentObjectContext;
            var query   = from c in context.Currencies
                          orderby c.DisplayOrder
                          where showHidden || c.Published
                          select c;
            var currencies = query.ToList();

            if (CurrencyManager.CacheEnabled)
            {
                NopStaticCache.Max(key, currencies);
            }
            return(currencies);
        }
예제 #18
0
        /// <summary>
        /// Deletes a setting
        /// </summary>
        /// <param name="settingId">Setting identifer</param>
        public static void DeleteSetting(int settingId)
        {
            var setting = GetSettingById(settingId);

            if (setting == null)
            {
                return;
            }

            var context = ObjectContextHelper.CurrentObjectContext;

            if (!context.IsAttached(setting))
            {
                context.Settings.Attach(setting);
            }
            context.DeleteObject(setting);
            context.SaveChanges();

            if (SettingManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(SETTINGS_ALL_KEY);
            }
        }
예제 #19
0
        /// <summary>
        /// Adds a setting
        /// </summary>
        /// <param name="name">The name</param>
        /// <param name="value">The value</param>
        /// <param name="description">The description</param>
        /// <returns>Setting</returns>
        public static Setting AddSetting(string name, string value, string description)
        {
            name  = CommonHelper.EnsureMaximumLength(name, 200);
            value = CommonHelper.EnsureMaximumLength(value, 2000);

            var context = ObjectContextHelper.CurrentObjectContext;

            var setting = context.Settings.CreateObject();

            setting.Name        = name;
            setting.Value       = value;
            setting.Description = description;

            context.Settings.AddObject(setting);
            context.SaveChanges();

            if (SettingManager.CacheEnabled)
            {
                NopStaticCache.RemoveByPattern(SETTINGS_ALL_KEY);
            }

            return(setting);
        }
예제 #20
0
        /// <summary>
        /// Gets a tax rate
        /// </summary>
        /// <param name="province">province</param>
        /// <param name="userID">UserID</param>
        /// <param name="password">Password</param>
        /// <param name="error">Error</param>
        /// <returns>Tax rate</returns>
        public decimal GetTaxRateCanada(string province, string userID,
                                        string password, ref string error)
        {
            decimal result = decimal.Zero;
            string  key    = string.Format(TAXRATECANADA_KEY, province);
            object  obj2   = NopStaticCache.Get(key);

            if (StrikeIronTaxProvider.CacheEnabled && (obj2 != null))
            {
                return((decimal)obj2);
            }

            try
            {
                NopSolutions.NopCommerce.Tax.TaxDataBasic.TaxDataBasic taxService = new NopSolutions.NopCommerce.Tax.TaxDataBasic.TaxDataBasic();
                taxService.LicenseInfoValue = new LicenseInfo();
                taxService.LicenseInfoValue.RegisteredUser          = new RegisteredUser();
                taxService.LicenseInfoValue.RegisteredUser.UserID   = userID;
                taxService.LicenseInfoValue.RegisteredUser.Password = password;

                // The GetTaxRateCanada operation can now be called.  The output type for this operation is SIWSOutputOfTaxRateCanadaData.
                // Note that for simplicity, there is no error handling in this sample project.  In a production environment, any
                // web service call should be encapsulated in a try-catch block.
                //
                var wsOutput = taxService.GetTaxRateCanada(province);

                // The output objects of this StrikeIron web service contains two sections: ServiceStatus, which stores data
                // indicating the success/failure status of the the web service request; and ServiceResult, which contains the
                // actual data returne as a result of the request.
                //
                // ServiceStatus contains two elements - StatusNbr: a numeric status code, and StatusDescription: a string
                // describing the status of the output object.  As a standard, you can apply the following assumptions for the value of
                // StatusNbr:
                //   200-299: Successful web service call (data found, etc...)
                //   300-399: Nonfatal error (No data found, etc...)
                //   400-499: Error due to invalid input
                //   500+: Unexpected internal error; contact [email protected]
                //
                if ((wsOutput.ServiceStatus.StatusNbr >= 200) && (wsOutput.ServiceStatus.StatusNbr < 300))
                {
                    //Successfully called SalesTax service...
                    var sb = new StringBuilder();
                    sb.AppendLine("Abbreviation: " + wsOutput.ServiceResult.Abbreviation);
                    sb.AppendLine("GST: " + wsOutput.ServiceResult.GST.ToString());
                    sb.AppendLine("province: " + wsOutput.ServiceResult.Province);
                    sb.AppendLine("PST: " + wsOutput.ServiceResult.PST.ToString());
                    sb.AppendLine("tax_shipping_handling: " + wsOutput.ServiceResult.TaxShippingHandling);
                    sb.AppendLine("total: " + wsOutput.ServiceResult.Total.ToString());
                    string debug = sb.ToString();
                    result = Convert.ToDecimal(wsOutput.ServiceResult.Total);
                }
                else
                {
                    // StrikeIron does not return SoapFault for invalid data when it cannot find a zipcode.
                    error = String.Format("[{0}] - {1}", wsOutput.ServiceStatus.StatusNbr.ToString(), wsOutput.ServiceStatus.StatusDescription);
                }
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }

            if (StrikeIronTaxProvider.CacheEnabled)
            {
                NopStaticCache.Max(key, result);
            }

            return(result);
        }
예제 #21
0
 protected void lbClearCache_Click(object sender, EventArgs e)
 {
     NopStaticCache.Clear();
 }