from core.models.system.SystemState import SystemState from core.models.enum_models import ProtocolChoice # from core.controllers.ProfileController import ProfileController from core.infrastructure.global_state import ProfileStateRepository class SystemStateController: @staticmethod def get(): return SystemState.get() @staticmethod def exists(): return SystemState.exists() @staticmethod def create(profile_id: int, firewalled: bool, dns_set: bool, protocol: ProtocolChoice, process_id: int = None) -> SystemState: current_state = SystemState(profile_id, firewalled, dns_set, protocol, process_id) current_state.save() # Sync to Repo ProfileStateRepository().sync_system_state(current_state) return current_state @staticmethod def update_or_create(system_state): system_state.save() # Sync to Repo ProfileStateRepository().sync_system_state(system_state) @staticmethod def dissolve(): res = SystemState.dissolve() # Sync to Repo: clear system ID ProfileStateRepository().global_state.systemwide_profile_id = None return res # class SystemStateController: # @staticmethod # def get(): # return SystemState.get() # @staticmethod # def exists(): # return SystemState.exists() # @staticmethod # def create(profile_id: int, firewalled: bool, dns_set: bool, protocol: ProtocolChoice, process_id: int = None) -> SystemState: # if process_id: # current_state = SystemState(profile_id, firewalled, dns_set, protocol, process_id) # else: # current_state = SystemState(profile_id, firewalled, dns_set, protocol) # current_state.save() # return current_state # @staticmethod # def update_or_create(system_state): # system_state.save() # @staticmethod # def dissolve(): # return SystemState.dissolve()