예제 #1
0
 public static void AddChanges(this List <DocumentsChanges> docChanges, DocumentsChanges.ChangeType change)
 {
     docChanges.Add(new DocumentsChanges
     {
         Change = change
     });
 }
예제 #2
0
 private static void NewChange(string fieldPath, string name, object newValue, object oldValue, List <DocumentsChanges> docChanges,
                               DocumentsChanges.ChangeType change)
 {
     docChanges.Add(new DocumentsChanges
     {
         FieldName     = name,
         FieldNewValue = newValue,
         FieldOldValue = oldValue,
         Change        = change,
         FieldPath     = fieldPath
     });
 }
예제 #3
0
        public WhatChanged()
        {
            using (var store = new DocumentStore())
            {
                #region what_changed_2
                using (IDocumentSession session = store.OpenSession())
                {
                    Assert.False(session.Advanced.HasChanges);

                    session.Store(new Employee
                    {
                        FirstName = "John",
                        LastName  = "Doe"
                    });

                    Assert.True(session.Advanced.HasChanges);
                }
                #endregion

                #region what_changed_4
                using (IDocumentSession session = store.OpenSession())
                {
                    session.Store(new Employee
                    {
                        FirstName = "Joe",
                        LastName  = "Doe"
                    });

                    IDictionary <string, DocumentsChanges[]> changes = session.Advanced.WhatChanged();
                    DocumentsChanges[]          employeeChanges      = changes["employees/1"];
                    DocumentsChanges.ChangeType change = employeeChanges[0].Change;                     // DocumentsChanges.ChangeType.DocumentAdded
                }
                #endregion

                #region what_changed_5
                using (IDocumentSession session = store.OpenSession())
                {
                    Employee employee = session.Load <Employee>("employees/1");                    // 'Joe Doe'
                    employee.FirstName = "John";
                    employee.LastName  = "Shmoe";

                    IDictionary <string, DocumentsChanges[]> changes = session.Advanced.WhatChanged();
                    DocumentsChanges[] employeeChanges = changes["employees/1"];
                    DocumentsChanges   change1         = employeeChanges[0];           // DocumentsChanges.ChangeType.FieldChanged
                    DocumentsChanges   change2         = employeeChanges[1];           // DocumentsChanges.ChangeType.FieldChanged
                }
                #endregion
            }
        }