Try your search with a different keyword or use * as a wildcard.
using FluentMigrator.Expressions;
using FluentMigrator.Model;
using FluentMigrator.Runner.Conventions;
namespace Nop.Data.Migrations;
/// <summary>
/// Convention for the default naming of an index
/// </summary>
public class NopIndexConvention : IIndexConvention
{
#region Fields
protected readonly INopDataProvider _dataProvider;
#endregion
#region Ctor
public NopIndexConvention(INopDataProvider dataProvider)
{
_dataProvider = dataProvider;
}
#endregion
#region Utilities
/// <summary>
/// Gets the default name of an index
/// </summary>
/// <param name="index">The index definition</param>
/// <returns>Name of an index</returns>
protected virtual string GetIndexName(IndexDefinition index)
{
return _dataProvider.GetIndexName(index.TableName, string.Join('_', index.Columns.Select(c => c.Name)));
}
#endregion
#region Methods
/// <summary>
/// Applies a convention to a FluentMigrator.Expressions.IIndexExpression
/// </summary>
/// <param name="expression">The expression this convention should be applied to</param>
/// <returns>The same or a new expression. The underlying type must stay the same.</returns>
public IIndexExpression Apply(IIndexExpression expression)
{
if (string.IsNullOrEmpty(expression.Index.Name))
expression.Index.Name = GetIndexName(expression.Index);
return expression;
}
#endregion
}