У нас разрастается проект и мы переделываем архитектуру.
Продаем цифровые продукты.
У нас есть генерация этих продуктов в PDF где все завязано на и есть 1С куда нужно заносить данные о продаже с этими же самыми полями. Я не спец по 1С, мне предоставили SOAP endpoint и документацию, где в запросах фигурируют xml модели на кириллице. Сначала было все ничего, мы из агрегата продукта вручную составляли модели через XDocument, генерировали xml и отправляли на endpoint, так же из этого агрегата составляли модель для PDF генерации подменой слов в шаблоне. Теперь хотим убить двух зайцев, как то динамически генерировать и те и те модели. Если с PDF частью все просто, то больше всего убивает 1С с кириллицей.
В связи с чем возникло несклько идей:
1. Записывать оплаченные ордеры в базу и просто передавать в 1C айдишники оплаченных ордеров, а 1С на своей стороне будет брать оплаченные ордеры из базы мэппить модели.
Плюсы:
- в 1с все инкапсулировано и от нас скрыт ад кириллицы
- разработка быстрее, мы просто кладем в базу и дергаем 1С
Минусы:
- Не динамически. На каждый продукт в 1С придется вручную прописывать логику мэппинга.
2. Сделать модульность, на каждый продукт создавать библиотеку класса с мэппингом для 1С и обрамить интерфейсом.
Плюсы:
- На каждый продукт в 1С НЕ придется вручную прописывать логику мэппинга.
Минусы
- эта ответственность перекладывается на нас и опять же нет динамики
3. Прописывать конфигурацию для каждого продукта с мэппингом полей
{
"PayDate" : "ДатаОплаты",
"RentPrice" : "СтоимостьАренды"
...
}
И динамически генерировать XDocument подставляя поля из конфигурации.
Плюсы:
- Описывается конфигом на продукт, не надо менять код
Минусы:
- Сложная логика (рефлексия, множество ветвлений)
- Могут появиться вложенные модели
- Тяжело поддерживать
Есть какие то идеи?