Exemple #1
0
        public CollectionModelPackage(IDocumentDatabase database, CollectionModel model, CollectionModelSettings settings)
        {
            Verify.IsNotNull(nameof(database), database);
            Verify.IsNotNull(nameof(model), model);
            Verify.IsNotNull(nameof(settings), settings);
            Verify.IsValid(nameof(model), model);

            Database = database;
            Model    = model;
            Settings = settings;

            StateManagerBuilder builder = new StateManagerBuilder();

            if (Settings.Remove || Settings.ReCreate)
            {
                builder.Add(new RemoveCollectionState(this));
            }

            if (!Settings.Remove)
            {
                builder.Add(new CreateCollectionState(this));
                builder.Add(new RemoveIndexesNotInSource(this));

                foreach (var item in Model.Indexes ?? Enumerable.Empty <CollectionIndex>())
                {
                    builder.Add(new CreateIndexState(this, item));
                }
            }

            _stateManager = builder.Build();
        }