Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }