from typing import Optional from cpl.application import ApplicationABC from cpl.core.console import Console from cpl.core.environment import Environment from cpl.core.log import LoggerABC from cpl.dependency import ServiceProviderABC from model.user_repo import UserRepo from model.user_repo_abc import UserRepoABC class Application(ApplicationABC): def __init__(self, services: ServiceProviderABC): ApplicationABC.__init__(self, services) self._logger: Optional[LoggerABC] = None def configure(self): self._logger = self._services.get_service(LoggerABC) def main(self): self._logger.debug(f"Host: {Environment.get_host_name()}") self._logger.debug(f"Environment: {Environment.get_environment()}") user_repo: UserRepo = self._services.get_service(UserRepoABC) if len(user_repo.get_users()) == 0: user_repo.add_test_user() Console.write_line("Users:") for user in user_repo.get_users(): Console.write_line(user.UserId, user.Name, user.City) Console.write_line("Cities:") for city in user_repo.get_cities(): Console.write_line(city.CityId, city.Name, city.ZIP)