Слой веб-служб и интерфейсов доступа (ServiceStack)
Генерируемые для слоя веб-служб C#-файлы предназначены для создания двух сборок: собственно служб и интерфейсов к ним, используемых клиентами.


Рис. 25. Классы, реализующие службы доступа к объектам домена

Рис. 26. Класс службы сохранения объектов
Интерфейсы доступа к службам также содержат описания перечислимых типов с локализацией, классы DTO для передачи состояния между программой-клиентом и доменом, классы для непосредственного доступа к вызовам служб.

Рис. 27. Перечисляемый тип слоя веб-служб

Рис. 28. Классы вызова специфицированных методов

Рис. 29. Классы вызова веб-служб, касающихся «финансового года»

Рис. 30. Класс адаптера для работы с объектом «Финансовый год»

Рис. 31. Класс адаптера для работы с коллекцией объектов «Финансовый год»
Работать с DTO и коллекциями не слишком комфортно, проявляется много ненужных деталей. Но если обернуть операции с DTO адаптерами, то код становится гораздо более читаемым и коротким.
Пример работы с DTO
CurrencyDTO curr1 = new CurrencyDTO();
curr1.Code = "RUR";
curr1.Name = "Currency 1";
UnitOfWorkDTO uow = new UnitOfWorkDTO();
uow.Save(curr1);
PersistenceRequest prq1 = new PersistenceRequest();
prq1.UnitOfWork = uow;
PersistenceResponse prr1 = client.Post<PersistenceResponse>("/Persistence", prq1);
Assert.IsFalse(prr1.CommitResult.HasError, prr1.CommitResult.Message);
Пример работы с адаптерами
Currency curr1 = new Currency();
curr1.Code = "RUR";
curr1.Name = "Currency 1";
CommitResult cr1 = curr1.Save();
Assert.IsFalse(cr1.HasError, cr1.Message);
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОК