private void btnAddConnection_Click(object sender, RoutedEventArgs e) { AddDatabaseCommand addDatabaseCommand = new AddDatabaseCommand(); addDatabaseCommand.Owner = this; addDatabaseCommand.Run(); }
public async Task AutoIndex_WhenCreateSecondIndexForTwoProperty_ShouldUseOnlyIfItIsMoreUpdatedThenTheFirstIndex() { Initialize(); var narrowIndexDefinition = new AutoMapIndexDefinition("Users", new[] { new AutoIndexField { Name = "Name", Storage = FieldStorage.No, }, }); AddIndex(narrowIndexDefinition); using (var context = DocumentsOperationContext.ShortTermSingleUse(_documentDatabase)) using (var tx = context.OpenWriteTransaction()) using (var doc = CreateDocument(context, "users/1", new DynamicJsonValue { ["Name"] = "Grisha", ["Company"] = "Hibernating Rhinos", [Constants.Documents.Metadata.Key] = new DynamicJsonValue { [Constants.Documents.Metadata.Collection] = "Users" } })) { _documentDatabase.DocumentsStorage.Put(context, "users/1", null, doc); tx.Commit(); } var narrowIndex = GetIndex(narrowIndexDefinition.Name); WaitForIndexMap(narrowIndex, 1); _documentDatabase.IndexStore.StopIndexing(); var extendedIndexDefinition = new AutoMapIndexDefinition("Users", new[] { new AutoIndexField { Name = "Name", Storage = FieldStorage.No, }, new AutoIndexField { Name = "Company", Storage = FieldStorage.No, }, }); AddIndex(extendedIndexDefinition); _documentDatabase.IndexStore.RunIdleOperations(); Assert.Equal(2, _documentDatabase.IndexStore.GetIndexes().Count()); _documentDatabase.IndexStore.StartIndexing(); var extendedIndex = GetIndex(extendedIndexDefinition.Name); WaitForIndexMap(extendedIndex, 1); { //Database records needs to change between `RunIdleOperations` calls to apply auto indexes modifications var addDatabaseCommand = new AddDatabaseCommand(Guid.NewGuid().ToString()) { Record = _documentDatabase.ReadDatabaseRecord(), Name = _documentDatabase.Name }; await _documentDatabase.ServerStore.SendToLeaderAsync(addDatabaseCommand); } _documentDatabase.IndexStore.RunIdleOperations(); Assert.Equal(1, _documentDatabase.IndexStore.GetIndexes().Count()); }