Класс Terrasoft.Configuration.EntityMapper — это утилитный класс конфигурации, который находится в пакете FinAppLending продукта Lending. EntityMapper позволяет сопоставлять данные одной сущности (Entity) с другой по правилам, определенным в конфигурационном файле. Использование подхода сопоставления данных разных сущностей позволяет избежать появления однообразного кода.
В продукте Lending существует два объекта, содержащих одинаковые колонки. Это объекты Физ. лицо (Contact) и Анкета (AppForm). Также существует несколько деталей, относящихся к объекту Физ. лицо (Contact) и имеющих похожие детали, относящиеся к Анкета (AppForm). Очевидно, что при заполнении анкеты должна быть возможность по колонке Id объекта Физ. лицо (Contact) получить список всех его колонок и значений, а также список нужных деталей с их колонками и значениями, и сопоставить эти данные с данными, связанными с анкетой. После этого можно автоматически заполнить поля анкеты сопоставленными данными. Таким образом можно существенно уменьшить затраты на ручной ввод одинаковых данных.
Идея сопоставления данных разных сущностей реализована в следующих классах:
- EntityMapper — реализует логику сопоставления.
- EntityResult — определяет в каком виде вернется сопоставленная сущность.
- MapConfig — представляет набор правил для сопоставления.
- DetailMapConfig — используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
- RelationEntityMapConfig — содержит правила для сопоставления связанных сущностей.
- EntityFilterMap — представляет из себя фильтр для запроса в базу данных.
Класс EntityMapper
Пространство имен Terrasoft.Configuration.
Класс реализует логику сопоставления.
Методы
Возвращает сопоставленные данные для двух объектов Entity.
rec |
GUID записи в базе данных. |
config | Экземпляр класса MapConfig, представляющий из себя набор правил сопоставления. |
Получает из базы данных главную сущность и сопоставляет ее колонки и значения по правилам, указанным в объекте config.
record |
GUID записи в базе данных. |
config | Экземпляр класса MapConfig, представляющий из себя набор правил сопоставления. |
result | Словарь колонок и их значений уже сопоставленной сущности. |
Получает из базы данных связанные сущности и сопоставляет их с основными сущностями.
relations | Список правил для получения связанных записей. |
dictionary |
Словарь с колонками и их значениями. |
column |
Название родительской колонки. |
entity |
Объект, содержащий название и Id записи в базе. |
Класс EntityResult
Пространство имен Terrasoft.Configuration.
Класс определяет в каком виде вернется сопоставленная сущность.
Свойства
Словарь с названиями колонок основной сущности и их значениями.
Словарь названий деталей со списком их колонок и значений.
Класс MapConfig
Пространство имен Terrasoft.Configuration.
Класс представляет набор правил для сопоставления.
Свойства
Название сущности в базе данных.
Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности.
Список конфигурационных объектов с правилами для деталей.
Список названий деталей для очистки их значений.
Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.
Класс DetailMapConfig
Пространство имен Terrasoft.Configuration.
Класс используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
Свойства
Название детали (для обеспечения уникальности экземпляра детали).
Название сущности в базе данных.
Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности.
Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных.
Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.
Класс RelationEntityMapConfig
Пространство имен Terrasoft.Configuration.
Класс содержит правила для сопоставления связанных сущностей.
Свойства
Название родительской колонки, при нахождении которой будет срабатывать логика получения и сопоставления данных по сущности.
Название сущности в базе данных.
Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности.
Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных.
Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью.
Класс EntityFilterMap
Пространство имен Terrasoft.Configuration.
Класс представляет из себя фильтр для запроса в базу данных.