Я пытаюсь найти наилучший способ сопоставления входных файлов, таких как файлы XLS или CSV, с объектами в системе. Позвольте мне немного подробнее остановиться на этом. У меня есть следующие объекты:
Компания
Контакт
Каждая имеет переменные переменные, такие как:
Адрес
Телефонные номера
Сообщения электронной почты
и т.д.
Входной файл, который я могу получить, варьируется, иногда будут заголовки столбцов, иногда нет, расположение столбцов и номера будут меняться время от времени. Это может выглядеть следующим образом:
COMPANY - CONTACT - ADDRESS - PHONE
----------------------------------------------------------------------
company1 contact1 address1 phone1
company1 contact2 address2
company2 contact3 phone2
contact4 address3
Выше показано, что «company» будет иметь «addres1» и «phone1», связанные с компанией, «contact1» - это собственный объект, но родительский объект «company1».
То же самое относится и к "contact2" (кроме телефона).
«contact4» не имеет родительского объекта, поэтому «address3» принадлежит контакту, а не компании.
До сих пор я думал о том, чтобы иметь следующие объекты:
Сопоставления - (здесь я не уверен, как это реализовать. В нем должно быть указано, как столбцы должны сопоставляться с переменными, принадлежность / иерархия - например, у компании есть адрес)
IMappingLoader - (загружает объекты сопоставления)
- XmlMappingLoader
- DbMappingLoader
IDataLoader - (загружает данные в набор данных)
- XLSLoader
- CSVLoader
Таким образом, сопоставления будут загружены, данные загружены в набор данных и возвращены правильные объекты.
Часть, в которой я не уверен, что лучший способ приблизиться - это сделать часть сопоставлений. Как определить, какой столбец должен принадлежать какому объекту.
Спасибо за любые советы.
Jon