Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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);
                }
            }
        }