Try your search with a different keyword or use * as a wildcard.
using FluentMigrator;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Logging;
using Nop.Core.Domain.Security;
using Nop.Core.Domain.Vendors;
using Nop.Data.Mapping;
namespace Nop.Data.Migrations.UpgradeTo440;
[NopUpdateMigration("2020-06-10 00:00:00", "4.40", UpdateMigrationType.Data)]
public class DataMigration : Migration
{
protected readonly INopDataProvider _dataProvider;
public DataMigration(INopDataProvider dataProvider)
{
_dataProvider = dataProvider;
}
///
/// Collect the UP migration expressions
///
public override void Up()
{
// new permission
if (!_dataProvider.GetTable().Any(pr => string.Compare(pr.SystemName, "AccessProfiling", StringComparison.InvariantCultureIgnoreCase) == 0))
{
var profilingPermission = _dataProvider.InsertEntity(
new PermissionRecord
{
Name = "Public store. Access MiniProfiler results",
SystemName = "AccessProfiling",
Category = "PublicStore"
}
);
//add it to the Admin role by default
var adminRole = _dataProvider
.GetTable()
.FirstOrDefault(x => x.IsSystemRole && x.SystemName == NopCustomerDefaults.AdministratorsRoleName);
_dataProvider.InsertEntity(
new PermissionRecordCustomerRoleMapping
{
CustomerRoleId = adminRole.Id,
PermissionRecordId = profilingPermission.Id
}
);
}
var activityLogTypeTable = _dataProvider.GetTable();
if (!activityLogTypeTable.Any(alt => string.Compare(alt.SystemKeyword, "AddNewSpecAttributeGroup", StringComparison.InvariantCultureIgnoreCase) == 0))
_dataProvider.InsertEntity(
new ActivityLogType
{
SystemKeyword = "AddNewSpecAttributeGroup",
Enabled = true,
Name = "Add a new specification attribute group"
}
);
if (!activityLogTypeTable.Any(alt => string.Compare(alt.SystemKeyword, "EditSpecAttributeGroup", StringComparison.InvariantCultureIgnoreCase) == 0))
_dataProvider.InsertEntity(
new ActivityLogType
{
SystemKeyword = "EditSpecAttributeGroup",
Enabled = true,
Name = "Edit a specification attribute group"
}
);
if (!activityLogTypeTable.Any(alt => string.Compare(alt.SystemKeyword, "DeleteSpecAttributeGroup", StringComparison.InvariantCultureIgnoreCase) == 0))
_dataProvider.InsertEntity(
new ActivityLogType
{
SystemKeyword = "DeleteSpecAttributeGroup",
Enabled = true,
Name = "Delete a specification attribute group"
}
);
//
if (!_dataProvider.GetTable().Any(pr => string.Compare(pr.SystemName, "ManageMultifactorAuthenticationMethods", StringComparison.InvariantCultureIgnoreCase) == 0))
{
var multiFactorAuthenticationPermission = _dataProvider.InsertEntity(
new PermissionRecord
{
Name = "Admin area. Manage Multi-factor Authentication Methods",
SystemName = "ManageMultifactorAuthenticationMethods",
Category = "Configuration"
}
);
//add it to the Admin role by default
var adminRole = _dataProvider
.GetTable()
.FirstOrDefault(x => x.IsSystemRole && x.SystemName == NopCustomerDefaults.AdministratorsRoleName);
_dataProvider.InsertEntity(
new PermissionRecordCustomerRoleMapping
{
CustomerRoleId = adminRole.Id,
PermissionRecordId = multiFactorAuthenticationPermission.Id
}
);
}
//
//issue-3852
var tableName = nameof(RewardPointsHistory);
var rph = Schema.Table(tableName);
var columnName = "UsedWithOrder_Id";
if (rph.Column(columnName).Exists())
{
var constraintName = "RewardPointsHistory_UsedWithOrder";
if (rph.Constraint(constraintName).Exists())
Delete.UniqueConstraint(constraintName).FromTable(tableName);
Delete.Column(columnName).FromTable(tableName);
}
//#3353
var productAttributeCombinationTableName = NameCompatibilityManager.GetTableName(typeof(ProductAttributeCombination));
//add column
if (!Schema.Table(productAttributeCombinationTableName).Column(nameof(ProductAttributeCombination.MinStockQuantity)).Exists())
{
Alter.Table(productAttributeCombinationTableName)
.AddColumn(nameof(ProductAttributeCombination.MinStockQuantity)).AsInt32().NotNullable().SetExistingRowsTo(0);
}
//#276 AJAX filters
var categoryTableName = NameCompatibilityManager.GetTableName(typeof(Category));
var manufacturerTableName = NameCompatibilityManager.GetTableName(typeof(Manufacturer));
var vendorTableName = NameCompatibilityManager.GetTableName(typeof(Vendor));
//remove column
var priceRangesColumnName = "PriceRanges";
if (Schema.Table(categoryTableName).Column(priceRangesColumnName).Exists())
Delete.Column(priceRangesColumnName).FromTable(categoryTableName);
if (Schema.Table(manufacturerTableName).Column(priceRangesColumnName).Exists())
Delete.Column(priceRangesColumnName).FromTable(manufacturerTableName);
//add column
var priceRangeFilteringColumnName = "PriceRangeFiltering";
if (!Schema.Table(categoryTableName).Column(priceRangeFilteringColumnName).Exists())
{
Alter.Table(categoryTableName)
.AddColumn(priceRangeFilteringColumnName).AsBoolean().NotNullable().SetExistingRowsTo(true);
}
if (!Schema.Table(manufacturerTableName).Column(priceRangeFilteringColumnName).Exists())
{
Alter.Table(manufacturerTableName)
.AddColumn(priceRangeFilteringColumnName).AsBoolean().NotNullable().SetExistingRowsTo(true);
}
if (!Schema.Table(vendorTableName).Column(priceRangeFilteringColumnName).Exists())
{
Alter.Table(vendorTableName)
.AddColumn(priceRangeFilteringColumnName).AsBoolean().NotNullable().SetExistingRowsTo(true);
}
//add column
var priceFromColumnName = "PriceFrom";
if (!Schema.Table(categoryTableName).Column(priceFromColumnName).Exists())
{
Alter.Table(categoryTableName)
.AddColumn(priceFromColumnName).AsDecimal().NotNullable().SetExistingRowsTo(0);
}
if (!Schema.Table(manufacturerTableName).Column(priceFromColumnName).Exists())
{
Alter.Table(manufacturerTableName)
.AddColumn(priceFromColumnName).AsDecimal().NotNullable().SetExistingRowsTo(0);
}
if (!Schema.Table(vendorTableName).Column(priceFromColumnName).Exists())
{
Alter.Table(vendorTableName)
.AddColumn(priceFromColumnName).AsDecimal().NotNullable().SetExistingRowsTo(0);
}
//add column
var priceToColumnName = "PriceTo";
if (!Schema.Table(categoryTableName).Column(priceToColumnName).Exists())
{
Alter.Table(categoryTableName)
.AddColumn(priceToColumnName).AsDecimal().NotNullable().SetExistingRowsTo(10000);
}
if (!Schema.Table(manufacturerTableName).Column(priceToColumnName).Exists())
{
Alter.Table(manufacturerTableName)
.AddColumn(priceToColumnName).AsDecimal().NotNullable().SetExistingRowsTo(10000);
}
if (!Schema.Table(vendorTableName).Column(priceToColumnName).Exists())
{
Alter.Table(vendorTableName)
.AddColumn(priceToColumnName).AsDecimal().NotNullable().SetExistingRowsTo(10000);
}
//add column
var manuallyPriceRangeColumnName = "ManuallyPriceRange";
if (!Schema.Table(categoryTableName).Column(manuallyPriceRangeColumnName).Exists())
{
Alter.Table(categoryTableName)
.AddColumn(manuallyPriceRangeColumnName).AsBoolean().NotNullable().SetExistingRowsTo(false);
}
if (!Schema.Table(manufacturerTableName).Column(manuallyPriceRangeColumnName).Exists())
{
Alter.Table(manufacturerTableName)
.AddColumn(manuallyPriceRangeColumnName).AsBoolean().NotNullable().SetExistingRowsTo(false);
}
if (!Schema.Table(vendorTableName).Column(manuallyPriceRangeColumnName).Exists())
{
Alter.Table(vendorTableName)
.AddColumn(manuallyPriceRangeColumnName).AsBoolean().NotNullable().SetExistingRowsTo(false);
}
}
public override void Down()
{
//add the downgrade logic if necessary
}
}