/// <summary> /// Prepare message template model /// </summary> /// <param name="model">Message template model</param> /// <param name="messageTemplate">Message template</param> /// <param name="excludeProperties">Whether to exclude populating of some properties of model</param> /// <returns>Message template model</returns> public virtual MessageTemplateModel PrepareMessageTemplateModel(MessageTemplateModel model, MessageTemplate messageTemplate, bool excludeProperties = false) { Action <MessageTemplateLocalizedModel, int> localizedModelConfiguration = null; if (messageTemplate != null) { //fill in model values from the entity model ??= messageTemplate.ToModel <MessageTemplateModel>(); //define localized model configuration action localizedModelConfiguration = (locale, languageId) => { locale.BccEmailAddresses = _localizationService.GetLocalized(messageTemplate, entity => entity.BccEmailAddresses, languageId, false, false); locale.Subject = _localizationService.GetLocalized(messageTemplate, entity => entity.Subject, languageId, false, false); locale.Body = _localizationService.GetLocalized(messageTemplate, entity => entity.Body, languageId, false, false); locale.EmailAccountId = _localizationService.GetLocalized(messageTemplate, entity => entity.EmailAccountId, languageId, false, false); //prepare available email accounts _baseAdminModelFactory.PrepareEmailAccounts(locale.AvailableEmailAccounts, defaultItemText: _localizationService.GetResource("Admin.ContentManagement.MessageTemplates.Fields.EmailAccount.Standard")); //PrepareEmailAccounts only gets available accounts, we need to set the item as selected manually if (locale.AvailableEmailAccounts?.FirstOrDefault(x => x.Value == locale.EmailAccountId.ToString()) is SelectListItem emailAccountListItem) { emailAccountListItem.Selected = true; } }; } model.SendImmediately = !model.DelayBeforeSend.HasValue; model.HasAttachedDownload = model.AttachedDownloadId > 0; var allowedTokens = string.Join(", ", _messageTokenProvider.GetListOfAllowedTokens(_messageTokenProvider.GetTokenGroups(messageTemplate))); model.AllowedTokens = $"{allowedTokens}{Environment.NewLine}{Environment.NewLine}" + $"{_localizationService.GetResource("Admin.ContentManagement.MessageTemplates.Tokens.ConditionalStatement")}{Environment.NewLine}"; //prepare localized models if (!excludeProperties) { model.Locales = _localizedModelFactory.PrepareLocalizedModels(localizedModelConfiguration); } //prepare available email accounts _baseAdminModelFactory.PrepareEmailAccounts(model.AvailableEmailAccounts); //prepare available stores _storeMappingSupportedModelFactory.PrepareModelStores(model, messageTemplate, excludeProperties); return(model); }
/// <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 CampaignModel PrepareCampaignModel(CampaignModel model, Campaign campaign, bool excludeProperties = false) { //fill in model values from the entity if (campaign != null) { model = model ?? campaign.ToModel <CampaignModel>(); if (campaign.DontSendBeforeDateUtc.HasValue) { model.DontSendBeforeDate = _dateTimeHelper.ConvertToUserTime(campaign.DontSendBeforeDateUtc.Value, DateTimeKind.Utc); } } model.AllowedTokens = string.Join(", ", _messageTokenProvider.GetListOfCampaignAllowedTokens()); //whether to fill in some of properties if (!excludeProperties) { model.EmailAccountId = _emailAccountSettings.DefaultEmailAccountId; } //prepare available stores _baseAdminModelFactory.PrepareStores(model.AvailableStores); //prepare available customer roles _baseAdminModelFactory.PrepareCustomerRoles(model.AvailableCustomerRoles); //prepare available email accounts _baseAdminModelFactory.PrepareEmailAccounts(model.AvailableEmailAccounts, false); return(model); }
/// <summary> /// Prepare message template model /// </summary> /// <param name="model">Message template model</param> /// <param name="messageTemplate">Message template</param> /// <param name="excludeProperties">Whether to exclude populating of some properties of model</param> /// <returns>Message template model</returns> public virtual MessageTemplateModel PrepareMessageTemplateModel(MessageTemplateModel model, MessageTemplate messageTemplate, bool excludeProperties = false) { //Action<MessageTemplateLocalizedModel, int> localizedModelConfiguration = null; if (messageTemplate != null) { //fill in model values from the entity model = model ?? messageTemplate.ToModel <MessageTemplateModel>(); //define localized model configuration action model.BccEmailAddresses = messageTemplate.BccEmailAddresses; model.Subject = messageTemplate.Subject; model.Body = messageTemplate.Body; model.EmailAccountId = messageTemplate.EmailAccountId; //prepare available email accounts //_baseAdminModelFactory.PrepareEmailAccounts(); } model.SendImmediately = !model.DelayBeforeSend.HasValue; model.HasAttachedDownload = model.AttachedDownloadId > 0; var allowedTokens = string.Join(", ", _messageTokenProvider.GetListOfAllowedTokens(messageTemplate.GetTokenGroups())); model.AllowedTokens = $"{allowedTokens}{Environment.NewLine}{Environment.NewLine}" + $"ConditionalStatement{Environment.NewLine}"; //prepare available email accounts _baseAdminModelFactory.PrepareEmailAccounts(model.AvailableEmailAccounts); return(model); }