Forwarded from A.G.
В продолжение истории про X.Spectator – сегодня таки нашел время и добавил небольшой пример использования.

В качестве примера взял взаимодействие библиотеки и издательства 📚. Логика следующая: в библиотеке есть определенное колиечество книг. Время от времени посетители приходят в библиотеку и берут одну книгу. Также есть издательство, которое время от времени выпускает некоторое количество книг (от 0, до 10).
Чтобы библиотека могла нормально функицонировать в ней постоянно должно быть какое-то количество книг.

Собственно задача решается довольно просто: создается экземпляр IProbe, который проверяет количество книг в библиотеке и не вышло ли оно за граничные значения. Наблюдатель, через определенные промежутки времени опрашивает LibraryServiceProbe, и если видит 👀, что что-то пошло не так - меняет статус системы 🛑.

Основной же сервис (CityHostedService 🏙) в рамках которого функционирует весь пример, в случае, когда статус системы изеняется на Danger завозит новые книги в библиотеку.

Все предельно просто и (я надеюсь) позволяет понять, как использовать X.Spectator в своих проектах.

Пример можно посмотреть тут:

https://github.com/ernado-x/X.Spectator/tree/master/examples/Example.App
The Ultimate Guide to Microsoft Publisher