예제 #1
0
        /// <summary>
        /// Prepare language model
        /// </summary>
        /// <param name="model">Language model</param>
        /// <param name="language">Language</param>
        /// <param name="excludeProperties">Whether to exclude populating of some properties of model</param>
        /// <returns>Language model</returns>
        public virtual async Task <LanguageModel> PrepareLanguageModelAsync(LanguageModel model, Language language, bool excludeProperties = false)
        {
            if (language != null)
            {
                //fill in model values from the entity
                model ??= language.ToModel <LanguageModel>();

                //prepare nested search model
                PrepareLocaleResourceSearchModel(model.LocaleResourceSearchModel, language);
            }

            //set default values for the new model
            if (language == null)
            {
                model.DisplayOrder = (await _languageService.GetAllLanguagesAsync()).Max(l => l.DisplayOrder) + 1;
                model.Published    = true;
            }

            //prepare available currencies
            await _baseAdminModelFactory.PrepareCurrenciesAsync(model.AvailableCurrencies,
                                                                defaultItemText : await _localizationService.GetResourceAsync("Admin.Common.EmptyItemText"));

            //prepare available stores
            await _storeMappingSupportedModelFactory.PrepareModelStoresAsync(model, language, excludeProperties);

            return(model);
        }