Try your search with a different keyword or use * as a wildcard.
using FluentMigrator;
using Nop.Core.Domain.Cms;
using Nop.Core.Domain.Configuration;
using Nop.Core.Domain.ScheduleTasks;
using Nop.Data;
using Nop.Data.Migrations;
using Nop.Services.Configuration;
using Nop.Services.Localization;
using Nop.Web.Framework.Extensions;
namespace Nop.Plugin.Misc.Brevo.Data;
[NopMigration("2023-05-22 17:00:00", "Misc.Brevo 4.70.4. Rename Sendinblue to Brevo.", MigrationProcessType.Update)]
public class BrevoMigration : MigrationBase
{
#region Fields
protected readonly ILocalizationService _localizationService;
protected readonly INopDataProvider _dataProvider;
protected readonly ISettingService _settingService;
protected readonly WidgetSettings _widgetSettings;
#endregion
#region Ctor
public BrevoMigration(
ILocalizationService localizationService,
INopDataProvider dataProvider,
ISettingService settingService,
WidgetSettings widgetSettings
)
{
_localizationService = localizationService;
_dataProvider = dataProvider;
_settingService = settingService;
_widgetSettings = widgetSettings;
}
#endregion
#region Methods
///
/// Collect the UP migration expressions
///
public override void Up()
{
if (!DataSettingsManager.IsDatabaseInstalled())
return;
#region locales
var (languageId, languages) = this.GetLanguageData();
//rename locales
this.RenameLocales(new Dictionary
{
["Plugins.Misc.Sendinblue.AccountInfo"] = "Plugins.Misc.Brevo.AccountInfo",
["Plugins.Misc.Sendinblue.AccountInfo.Hint"] = "Plugins.Misc.Brevo.AccountInfo.Hint",
["Plugins.Misc.Sendinblue.ActivateSMTP"] = "Plugins.Misc.Brevo.ActivateSMTP",
["Plugins.Misc.Sendinblue.AddNewSMSNotification"] = "Plugins.Misc.Brevo.AddNewSMSNotification",
["Plugins.Misc.Sendinblue.BillingAddressPhone"] = "Plugins.Misc.Brevo.BillingAddressPhone",
["Plugins.Misc.Sendinblue.CustomerPhone"] = "Plugins.Misc.Brevo.CustomerPhone",
["Plugins.Misc.Sendinblue.EditTemplate"] = "Plugins.Misc.Brevo.EditTemplate",
["Plugins.Misc.Sendinblue.Fields.AllowedTokens.Hint"] = "Plugins.Misc.Brevo.Fields.AllowedTokens.Hint",
["Plugins.Misc.Sendinblue.Fields.ApiKey"] = "Plugins.Misc.Brevo.Fields.ApiKey",
["Plugins.Misc.Sendinblue.Fields.ApiKey.Hint"] = "Plugins.Misc.Brevo.Fields.ApiKey.Hint",
["Plugins.Misc.Sendinblue.Fields.CampaignList"] = "Plugins.Misc.Brevo.Fields.CampaignList",
["Plugins.Misc.Sendinblue.Fields.CampaignList.Hint"] = "Plugins.Misc.Brevo.Fields.CampaignList.Hint",
["Plugins.Misc.Sendinblue.Fields.CampaignSenderName"] = "Plugins.Misc.Brevo.Fields.CampaignSenderName",
["Plugins.Misc.Sendinblue.Fields.CampaignSenderName.Hint"] = "Plugins.Misc.Brevo.Fields.CampaignSenderName.Hint",
["Plugins.Misc.Sendinblue.Fields.CampaignText"] = "Plugins.Misc.Brevo.Fields.CampaignText",
["Plugins.Misc.Sendinblue.Fields.CampaignText.Hint"] = "Plugins.Misc.Brevo.Fields.CampaignText.Hint",
["Plugins.Misc.Sendinblue.Fields.List"] = "Plugins.Misc.Brevo.Fields.List",
["Plugins.Misc.Sendinblue.Fields.List.Hint"] = "Plugins.Misc.Brevo.Fields.List.Hint",
["Plugins.Misc.Sendinblue.Fields.MaKey"] = "Plugins.Misc.Brevo.Fields.MaKey",
["Plugins.Misc.Sendinblue.Fields.MaKey.Hint"] = "Plugins.Misc.Brevo.Fields.MaKey.Hint",
["Plugins.Misc.Sendinblue.Fields.Sender"] = "Plugins.Misc.Brevo.Fields.Sender",
["Plugins.Misc.Sendinblue.Fields.Sender.Hint"] = "Plugins.Misc.Brevo.Fields.Sender.Hint",
["Plugins.Misc.Sendinblue.Fields.SmsSenderName"] = "Plugins.Misc.Brevo.Fields.SmsSenderName",
["Plugins.Misc.Sendinblue.Fields.SmsSenderName.Hint"] = "Plugins.Misc.Brevo.Fields.SmsSenderName.Hint",
["Plugins.Misc.Sendinblue.Fields.SmtpKey"] = "Plugins.Misc.Brevo.Fields.SmtpKey",
["Plugins.Misc.Sendinblue.Fields.SmtpKey.Hint"] = "Plugins.Misc.Brevo.Fields.SmtpKey.Hint",
["Plugins.Misc.Sendinblue.Fields.StoreOwnerPhoneNumber"] = "Plugins.Misc.Brevo.Fields.StoreOwnerPhoneNumber",
["Plugins.Misc.Sendinblue.Fields.StoreOwnerPhoneNumber.Hint"] = "Plugins.Misc.Brevo.Fields.StoreOwnerPhoneNumber.Hint",
["Plugins.Misc.Sendinblue.Fields.TrackingScript"] = "Plugins.Misc.Brevo.Fields.TrackingScript",
["Plugins.Misc.Sendinblue.Fields.TrackingScript.Hint"] = "Plugins.Misc.Brevo.Fields.TrackingScript.Hint",
["Plugins.Misc.Sendinblue.Fields.UseMarketingAutomation"] = "Plugins.Misc.Brevo.Fields.UseMarketingAutomation",
["Plugins.Misc.Sendinblue.Fields.UseMarketingAutomation.Hint"] = "Plugins.Misc.Brevo.Fields.UseMarketingAutomation.Hint",
["Plugins.Misc.Sendinblue.Fields.UseSmsNotifications"] = "Plugins.Misc.Brevo.Fields.UseSmsNotifications",
["Plugins.Misc.Sendinblue.Fields.UseSmsNotifications.Hint"] = "Plugins.Misc.Brevo.Fields.UseSmsNotifications.Hint",
["Plugins.Misc.Sendinblue.Fields.UseSmtp"] = "Plugins.Misc.Brevo.Fields.UseSmtp",
["Plugins.Misc.Sendinblue.Fields.UseSmtp.Hint"] = "Plugins.Misc.Brevo.Fields.UseSmtp.Hint",
["Plugins.Misc.Sendinblue.General"] = "Plugins.Misc.Brevo.General",
["Plugins.Misc.Sendinblue.ImportProcess"] = "Plugins.Misc.Brevo.ImportProcess",
["Plugins.Misc.Sendinblue.ManualSync"] = "Plugins.Misc.Brevo.ManualSync",
["Plugins.Misc.Sendinblue.SyncNow"] = "Plugins.Misc.Brevo.SyncNow",
["Plugins.Misc.Sendinblue.MarketingAutomation"] = "Plugins.Misc.Brevo.MarketingAutomation",
["Plugins.Misc.Sendinblue.MyPhone"] = "Plugins.Misc.Brevo.MyPhone",
["Plugins.Misc.Sendinblue.PhoneType"] = "Plugins.Misc.Brevo.PhoneType",
["Plugins.Misc.Sendinblue.PhoneType.Hint"] = "Plugins.Misc.Brevo.PhoneType.Hint",
["Plugins.Misc.Sendinblue.SMS"] = "Plugins.Misc.Brevo.SMS",
["Plugins.Misc.Sendinblue.SMS.Campaigns"] = "Plugins.Misc.Brevo.SMS.Campaigns",
["Plugins.Misc.Sendinblue.SMS.Campaigns.Sent"] = "Plugins.Misc.Brevo.SMS.Campaigns.Sent",
["Plugins.Misc.Sendinblue.SMS.Campaigns.Submit"] = "Plugins.Misc.Brevo.SMS.Campaigns.Submit",
["Plugins.Misc.Sendinblue.SMSText"] = "Plugins.Misc.Brevo.SMSText",
["Plugins.Misc.Sendinblue.SMSText.Hint"] = "Plugins.Misc.Brevo.SMSText.Hint",
["Plugins.Misc.Sendinblue.Synchronization"] = "Plugins.Misc.Brevo.Synchronization",
["Plugins.Misc.Sendinblue.Transactional"] = "Plugins.Misc.Brevo.Transactional",
["Plugins.Misc.Sendinblue.UseSendinblueTemplate"] = "Plugins.Misc.Brevo.UseBrevoTemplate",
}, languages, _localizationService);
//add, update and delete localization resources
_localizationService.AddOrUpdateLocaleResource(new Dictionary
{
["Plugins.Misc.Brevo.ActivateSMTP"] = "On your Brevo account, the SMTP has not been enabled yet. To request its activation, simply send an email to our support team at contact@brevo.com and mention that you will be using the SMTP with the nopCommerce plugin.",
["Plugins.Misc.Brevo.Fields.ApiKey.Hint"] = "Paste your Brevo account API v3 key.",
["Plugins.Misc.Brevo.Fields.List.Hint"] = "Select the Brevo list where your nopCommerce newsletter subscribers will be added.",
["Plugins.Misc.Brevo.Fields.TrackingScript.Hint"] = $"Paste the tracking script generated by Brevo here. {BrevoDefaults.TrackingScriptId} and {BrevoDefaults.TrackingScriptCustomerEmail} will be dynamically replaced.",
["Plugins.Misc.Brevo.Fields.UseMarketingAutomation.Hint"] = "Check for enable Brevo Automation.",
["Plugins.Misc.Brevo.Fields.UseSmtp"] = "Use Brevo SMTP",
["Plugins.Misc.Brevo.Fields.UseSmtp.Hint"] = "Check for using Brevo SMTP for sending transactional emails.",
["Plugins.Misc.Brevo.UseBrevoTemplate"] = "Brevo template",
}, languageId);
#endregion
#region settings
var sendinblueSettings = _dataProvider.GetTable().Where(x => x.Name.StartsWith("sendinbluesettings.")).ToList();
if (sendinblueSettings.Any())
{
foreach (var setting in sendinblueSettings)
{
setting.Name = setting.Name.Replace("sendinbluesettings", "brevosettings");
}
_dataProvider.UpdateEntities(sendinblueSettings);
}
if (!_widgetSettings.ActiveWidgetSystemNames.Contains(BrevoDefaults.SystemName))
{
_widgetSettings.ActiveWidgetSystemNames.Add(BrevoDefaults.SystemName);
_settingService.SaveSetting(_widgetSettings);
}
#endregion
#region schedule task
var sendinblueTask = _dataProvider.GetTable().FirstOrDefault(x => x.Type == "Nop.Plugin.Misc.Sendinblue.Services.SynchronizationTask");
if (sendinblueTask != null)
{
sendinblueTask.Type = BrevoDefaults.SynchronizationTask;
sendinblueTask.Name = BrevoDefaults.SynchronizationTaskName;
_dataProvider.UpdateEntity(sendinblueTask);
}
#endregion
}
///
/// Collects the DOWN migration expressions
///
public override void Down()
{
//add the downgrade logic if necessary
}
#endregion
}