Обновление / вставка данных в базу данных из данных другой службы и просто просмотр данных - это два разных варианта использования / процесса. Не пытайтесь повторно использовать GetInformationsFromService()
, потому что у него другое назначение. На самом деле, вы должны переименовать его примерно как SyncInformation()
, и у вас будет другой метод с именем GetInformation()
только для просмотра данных.
Вот что вы можете сделать, исключив TriggerProcess()
, потому что SyncInformation()
уже процесс, просто вызовите его напрямую:
Этот вариант использования / процесс также должен быть включен в уровень домена :
Вариант использования синхронизации информации:
public void SyncInformation() {
var informations = exampleService.GetInformations();
informationRepository.insertInformation(informations);
}
Получить информацию Вариант использования:
public List<Information> GetInformation() {
return exampleService.getInformation();
}
Выборка и сохранение данных должны быть в вашем слое данных :
ExampleService:
public List<Information> getInformation() {
// logic to fetch from another service, eg: API
}
InformationRepository:
public void insertInformation(informations)
{
// insert to database logic
}
Здесь мы следуем разделению интересов , потому что мы разделяем его на два слоя: домен и данные. Уровень домена обрабатывает всю прикладную / бизнес-логику, например, шаги по синхронизации информации. Он знает, КОГДА он должен сохранять данные, но он не знает, КАК . Уровень данных знает, КАК читать и сохранять данные, но он не знает, КОГДА это должно произойти.