Розробка представлення для кількох вкладених дочірніх об'єктів за допомогою Automapper у C#

Розробка представлення для кількох вкладених дочірніх об’єктів за допомогою Automapper у C#

5 Березня 2024 в 20:39 36

Використання Automapper у C# дозволяє зручно та ефективно виконувати відображення об’єктів між різними шарами додатку, зокрема між моделями даних та об’єктами передачі даних (DTO). У даному випадку, ми спробуємо використати Automapper для створення представлення (DTO) об’єкту Request, що містить інформацію про додатки, пов’язані з цим запитом.

Однак, одна з властивостей DTO, Systems, потребує спеціального оброблення. Вона має містити конкатеновані назви додатків, пов’язаних з запитом. Тобто, якщо запит має додатки “Apple” та “Pear”, то властивість Systems має містити рядок “Apple Pear”.

Для досягнення цієї мети ми використовуємо Automapper і його можливості налаштування відображень. У класі MappingProfile ми створюємо профіль відображення, в якому вказуємо правила для відображення властивостей. Для властивості Systems ми використовуємо власний метод ConcatenateApplicationNames, який приймає колекцію RequestApplication та повертає конкатеновані назви додатків.

Звернімо увагу на метод ConcatenateApplicationNames. Він перевіряє, чи не є колекція порожньою або нульовою. Потім проходиться по кожному запиту та додає назви додатків до списку. На завершення методу використовується метод Join для конкатенації назв додатків в один рядок, розділених пробілом.

Таким чином, з використанням Automapper та правильно налаштованим відображенням, ми можемо зручно створити представлення об’єкту Request, включаючи конкатеновані назви додатків для властивості Systems у нашому DTO.