Try your search with a different keyword or use * as a wildcard.
using FluentMigrator;
using Nop.Data;
using Nop.Data.Extensions;
using Nop.Data.Mapping;
using Nop.Data.Migrations;
using Nop.Plugin.Tax.Avalara.Domain;
using Nop.Services.Configuration;
using Nop.Services.Localization;
using Nop.Web.Framework.Extensions;
namespace Nop.Plugin.Tax.Avalara.Data;
[NopMigration("2023-05-01 00:00:02", "Tax.Avalara 4.70.2. Add Item classification feature", MigrationProcessType.Update)]
public class ItemClassificationMigration : MigrationBase
{
#region Fields
protected readonly AvalaraTaxSettings _avalaraTaxSettings;
protected readonly ILanguageService _languageService;
protected readonly ILocalizationService _localizationService;
protected readonly ISettingService _settingService;
#endregion
#region Ctor
public ItemClassificationMigration(AvalaraTaxSettings avalaraTaxSettings,
ILanguageService languageService,
ILocalizationService localizationService,
ISettingService settingService)
{
_avalaraTaxSettings = avalaraTaxSettings;
_languageService = languageService;
_localizationService = localizationService;
_settingService = settingService;
}
#endregion
#region Methods
///
/// Collect the UP migration expressions
///
public override void Up()
{
if (!DataSettingsManager.IsDatabaseInstalled())
return;
if (!Schema.Table(NameCompatibilityManager.GetTableName(typeof(ItemClassification))).Exists())
Create.TableFor();
//locales
var (languageId, languages) = this.GetLanguageData();
_localizationService.AddOrUpdateLocaleResource(new Dictionary
{
["Plugins.Tax.Avalara.ItemClassification"] = "Item Classification",
["Plugins.Tax.Avalara.Fields.UseItemClassification"] = "Use item classification",
["Plugins.Tax.Avalara.Fields.UseItemClassification.Hint"] = "Item classification is when a harmonized system (HS) code is assigned to a product based on its physical properties. Avalara assigns HS codes to customer products through its item classification service.",
["Plugins.Tax.Avalara.Fields.Countries"] = "Country of destination to HS classify",
["Plugins.Tax.Avalara.Fields.Countries.Hint"] = "Add a countries where you collect tax.",
["Plugins.Tax.Avalara.Fields.Countries.Required"] = "Country of destination to HS classify is required",
["Plugins.Tax.Avalara.ItemClassification.Sync"] = "Synchronization",
["Plugins.Tax.Avalara.ItemClassification.Sync.Confirm"] = @"
You want to start classification products with the connected account.
Classification may take some time.
",
["Plugins.Tax.Avalara.ItemClassification.Sync.Success"] = "The launch of the product classification procedure was successful.",
["Plugins.Tax.Avalara.ItemClassification.Sync.Button"] = "Sync now",
["Plugins.Tax.Avalara.ItemClassification.Search.Country"] = "Country",
["Plugins.Tax.Avalara.ItemClassification.Search.Country.Hint"] = "If an asterisk is selected, then this will apply to all products, regardless of the country.",
["Plugins.Tax.Avalara.ItemClassification.Product"] = "Product",
["Plugins.Tax.Avalara.ItemClassification.Country"] = "Country",
["Plugins.Tax.Avalara.ItemClassification.HSClassificationRequestId"] = "HS classification Id",
["Plugins.Tax.Avalara.ItemClassification.HSCode"] = "HS Code",
["Plugins.Tax.Avalara.ItemClassification.UpdatedDate"] = "Updated on",
["Plugins.Tax.Avalara.ItemClassification.Deleted"] = "The item classification entry has been deleted successfully.",
["Plugins.Tax.Avalara.ItemClassification.AddProduct"] = "Add product",
}, languageId);
//settings
if (!_settingService.SettingExists(_avalaraTaxSettings, settings => settings.UseItemClassification))
_avalaraTaxSettings.UseItemClassification = false;
if (!_settingService.SettingExists(_avalaraTaxSettings, settings => settings.SelectedCountryIds))
_avalaraTaxSettings.SelectedCountryIds = null;
_settingService.SaveSetting(_avalaraTaxSettings);
}
///
/// Collects the DOWN migration expressions
///
public override void Down()
{
//nothing
}
#endregion
}