public IActionResult Run() { #region Demo #region Step_1 RevisionsConfiguration myRevisionsConfiguration = new RevisionsConfiguration { Default = new RevisionsCollectionConfiguration { Disabled = false } }; ConfigureRevisionsOperation revisionsConfigurationOperation = new ConfigureRevisionsOperation(myRevisionsConfiguration); DocumentStoreHolder.Store.Maintenance.Send(revisionsConfigurationOperation); #endregion List <Company> revisions; using (IDocumentSession session = DocumentStoreHolder.Store.OpenSession()) { #region Step_2 Company company = session.Load <Company>("companies/7-A"); company.Name = "Name 1"; session.CountersFor("companies/7-A").Increment("MyCounter", 100); session.SaveChanges(); company.Name = "Name 2"; company.Phone = "052-1234-567"; session.SaveChanges(); #endregion #region Step_3 revisions = session .Advanced .Revisions .GetFor <Company>("companies/7-A", start: 0, pageSize: 25); #endregion } #endregion return(Ok(revisions)); }
public IActionResult Run(RunParams runParams) { string collection1 = runParams.Collection1; string collection2 = runParams.Collection2; #region Demo #region Step_1 RevisionsConfiguration myRevisionsConfiguration = new RevisionsConfiguration #endregion { #region Step_2 Default = new RevisionsCollectionConfiguration { Disabled = false, PurgeOnDelete = false, MinimumRevisionsToKeep = 5, MinimumRevisionAgeToKeep = TimeSpan.FromDays(14), }, #endregion #region Step_3 Collections = new Dictionary <string, RevisionsCollectionConfiguration> { { collection1, new RevisionsCollectionConfiguration { Disabled = true } }, { collection2, new RevisionsCollectionConfiguration { PurgeOnDelete = true } } } #endregion }; #region Step_4 ConfigureRevisionsOperation revisionsConfigurationOperation = new ConfigureRevisionsOperation(myRevisionsConfiguration); DocumentStoreHolder.Store.Maintenance.Send(revisionsConfigurationOperation); #endregion #endregion return(Ok($"Revisions on {collection1} & {collection2} collections were successfully defined")); }
public async Task ShouldStoreTotalDocumentsSizeInPerformanceHint_ForRevisions() { using (var store = GetDocumentStore(new Options { ModifyDatabaseRecord = record => record.Settings[RavenConfiguration.GetKey(x => x.PerformanceHints.MaxNumberOfResults)] = "1" })) { using (var session = store.OpenSession()) { session.Store(new Company { Name = "HR", Address = new Address { Country = "Japan" } }, "companies/1"); var myRevisionsConfiguration = new RevisionsConfiguration { Default = new RevisionsCollectionConfiguration { Disabled = false, PurgeOnDelete = false, MinimumRevisionsToKeep = 5, MinimumRevisionAgeToKeep = TimeSpan.FromDays(14), }, Collections = new Dictionary <string, RevisionsCollectionConfiguration> { { "companies", new RevisionsCollectionConfiguration { } } } }; var revisionsConfigurationOperation = new ConfigureRevisionsOperation(myRevisionsConfiguration); store.Maintenance.Send(revisionsConfigurationOperation); session.SaveChanges(); } using (var session = store.OpenSession()) { var comp = session.Load <Company>("companies/1"); Assert.NotNull(comp); comp.Phone = "123456789"; comp.Fax = "0987654321"; session.SaveChanges(); comp.Fax = "123456789"; comp.Phone = "0987654321"; session.SaveChanges(); var revisions = session .Advanced .Revisions .GetFor <Company>("companies/1", pageSize: 4); } var database = await GetDatabase(store.Database); database.NotificationCenter.Paging.UpdatePaging(null); using (database.NotificationCenter.GetStored(out var actions)) { var action = actions.First(); Assert.True(action.Json.TryGet("Details", out BlittableJsonReaderObject details)); Assert.True(details.TryGet("Actions", out BlittableJsonReaderObject detailsActions)); Assert.True(detailsActions.TryGet("GetRevisions", out BlittableJsonReaderArray detailsArray)); var index = detailsArray.GetByIndex <BlittableJsonReaderObject>(0); Assert.NotNull(index); Assert.True(index.TryGet("TotalDocumentsSizeInBytes", out int size)); Assert.True(size > 0); } } }