// Constructors

        public DomainModelConverter(
            HandlerAccessor handlers,
            ITypeIdProvider typeIdProvider,
            PartialIndexFilterCompiler compiler,
            MappingResolver resolver,
            IFullTextCatalogNameBuilder fulltextCatalogNameBuilder,
            bool isUpgradingStage)
        {
            ArgumentValidator.EnsureArgumentNotNull(handlers, "handlers");
            ArgumentValidator.EnsureArgumentNotNull(typeIdProvider, "typeIdProvider");
            ArgumentValidator.EnsureArgumentNotNull(compiler, "compiler");
            ArgumentValidator.EnsureArgumentNotNull(resolver, "resolver");

            this.handlers                   = handlers;
            this.compiler                   = compiler;
            this.typeIdProvider             = typeIdProvider;
            this.resolver                   = resolver;
            this.isUpgradingStage           = isUpgradingStage;
            this.fulltextCatalogNameBuilder = fulltextCatalogNameBuilder;

            sourceModel       = handlers.Domain.Model;
            configuration     = handlers.Domain.Configuration;
            providerInfo      = handlers.ProviderInfo;
            driver            = handlers.StorageDriver;
            nameBuilder       = handlers.NameBuilder;
            FieldMapping      = new Dictionary <StoredFieldInfo, StoredFieldInfo>();
            StorageModel      = null;
            CurrentModelTypes = new Dictionary <string, StoredTypeInfo>();
        }
 public override void OnPrepare() =>
 nameBuilder = UpgradeContext.Services.FulltextCatalogNameBuilder;