/// <summary> /// Prepare campaign model /// </summary> /// <param name="model">Campaign model</param> /// <param name="campaign">Campaign</param> /// <param name="excludeProperties">Whether to exclude populating of some properties of model</param> /// <returns>Campaign model</returns> public virtual async Task<CampaignModel> PrepareCampaignModelAsync(CampaignModel model, Campaign campaign, bool excludeProperties = false) { //fill in model values from the entity if (campaign != null) { model ??= campaign.ToModel<CampaignModel>(); if (campaign.DontSendBeforeDateUtc.HasValue) model.DontSendBeforeDate = await _dateTimeHelper.ConvertToUserTimeAsync(campaign.DontSendBeforeDateUtc.Value, DateTimeKind.Utc); } model.AllowedTokens = string.Join(", ", await _messageTokenProvider.GetListOfCampaignAllowedTokensAsync()); //whether to fill in some of properties if (!excludeProperties) model.EmailAccountId = _emailAccountSettings.DefaultEmailAccountId; //prepare available stores await _baseAdminModelFactory.PrepareStoresAsync(model.AvailableStores); //prepare available customer roles await _baseAdminModelFactory.PrepareCustomerRolesAsync(model.AvailableCustomerRoles); //prepare available email accounts await _baseAdminModelFactory.PrepareEmailAccountsAsync(model.AvailableEmailAccounts, false); return model; }
/// <summary> /// Prepare newsletter subscription search model /// </summary> /// <param name="searchModel">Newsletter subscription search model</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the newsletter subscription search model /// </returns> public virtual async Task <NewsletterSubscriptionSearchModel> PrepareNewsletterSubscriptionSearchModelAsync(NewsletterSubscriptionSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare available stores await _baseAdminModelFactory.PrepareStoresAsync(searchModel.AvailableStores); //prepare available customer roles await _baseAdminModelFactory.PrepareCustomerRolesAsync(searchModel.AvailableCustomerRoles); //prepare "activated" filter (0 - all; 1 - activated only; 2 - deactivated only) searchModel.ActiveList.Add(new SelectListItem { Value = "0", Text = await _localizationService.GetResourceAsync("Admin.Promotions.NewsLetterSubscriptions.List.SearchActive.All") }); searchModel.ActiveList.Add(new SelectListItem { Value = "1", Text = await _localizationService.GetResourceAsync("Admin.Promotions.NewsLetterSubscriptions.List.SearchActive.ActiveOnly") }); searchModel.ActiveList.Add(new SelectListItem { Value = "2", Text = await _localizationService.GetResourceAsync("Admin.Promotions.NewsLetterSubscriptions.List.SearchActive.NotActiveOnly") }); searchModel.HideStoresList = _catalogSettings.IgnoreStoreLimitations || searchModel.AvailableStores.SelectionIsNotPossible(); //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }