public void SearchChangeTest() { // Настраиваем контроллер. IChangesSearcher controller = new ChangesSearcher(); controller.SearchBuilder <Person>() .Select(1, nameof(Person.FirstName)) .Select(2, nameof(Person.LastName)) .Select(3, nameof(Person.Dogs)) .Build(); controller.SearchBuilder <Dog>() .Select(4, nameof(Dog.Name)) .Build(); // Получаем изменения. var diffs = controller.GetChanges(_oldPerson, _newPerson); }
public void Initialize(bool isNeedInitProtobufTypeModel = true) { // Настраиваем поиск по полям. var builder = _changesSearcher.SearchBuilder <TModel>(); foreach (var field in _fieldsInfos) { builder.Select(field.Key, field.Value.PropertyInfo.Name); } builder.Build(); // Настраиваем Protobuf (если необходимо). if (isNeedInitProtobufTypeModel) { MetaType protoBuilder = _changesSearcher.ProtobufTypeModel.Add(typeof(TModel), false); foreach (var field in _fieldsInfos) { protoBuilder.Add(field.Key, field.Value.PropertyInfo.Name); } } }