/// <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); }