protected override void CreateComponents() { RunServiceImpl = new RunService(RunWindowStrategy.WinForms); KeyServiceImpl = new KeyServiceHotKey(RunServiceImpl); RectangleServiceImpl = new RectangleService(); WindowOsServiceImpl = new WindowOsService(); WindowRepositoryImpl = new WindowRepository(new WindowId.WindowIdEqualityComparer()); ScreenOsServiceImpl = new ScreenOsService(); ScreenRepositoryImpl = new ScreenRepository(); AddComponent(RunService); AddComponent(KeyService); AddComponent(RectangleService); AddComponent(WindowOsService); AddComponent(WindowRepository); AddComponent(ScreenOsService); AddComponent(ScreenRepository); }
public async Task StartAsync() { var screens = ScreenOsService.GetScreens().OrderBy(s => s.Rectangle.Position.Left).ToList(); var desktops = await DesktopRepository.GetDesktops(); var desktop = desktops.First(); foreach (var screen in screens) { await ScreenRepository.AddOrUpdateScreen(screen); desktop.Screen = screen; desktop = await DesktopRepository.GetNext(desktop); } var windows = WindowOsService.GetWindowsSync(); foreach (var window in windows) { await WindowRepository.AddOrUpdateWindow(window); } ForceLayout(); }