private DoWorkResults DoWork(TraySettings traySettings) { var mainViewModels = new List <MainViewModel>(); List <Server> servers = traySettings.Servers.Where(server => server.BuildPlans.Count > 0).ToList(); foreach (var server in servers) { try { var bambooService = new BambooService(new Uri(server.Address), server.Username, server.PlaintextPassword); foreach (var buildPlan in server.BuildPlans) { var planDetail = bambooService.GetPlanDetail(buildPlan.Key); planDetail.Results = bambooService.GetPlanResults(buildPlan.Key); var resultDetail = planDetail.Results.FirstOrDefault(); if (resultDetail != null) { resultDetail.Detail = bambooService.GetResultDetail(resultDetail.Key); } mainViewModels.Add(MainViewModelBuilder.Build(planDetail, server)); } } catch (BambooRequestException e) { return(new DoWorkResults(e)); } } return(new DoWorkResults(mainViewModels)); }
private void Application_Startup(object sender, StartupEventArgs e) { MainViewModel viewModel = new MainViewModelBuilder().Build(); MainWindow window = new MainWindow(); window.Content = viewModel; window.Show(); }
public MainWindow BuildWindow() { // build modules var adornerControl = new AdornerControl(); // build viewModels var mainViewModelBuilder = new MainViewModelBuilder(medicalPracticeRepository, readModelRepository, patientRepository, therapyPlaceTypeRepository, labelRepository, commandService, localSettingsRepository, viewModelCommunication, session, adornerControl); var loginViewModelBuilder = new LoginViewModelBuilder(session, localSettingsRepository); var notificationServiceContainerViewModel = new NotificationServiceContainerViewModel(viewModelCommunication); var connectionStatusViewModel = new ConnectionStatusViewModel(session); var dialogBuilder = new AboutDialogWindowBuilder(versionNumber, errorCallback); var actionBarViewModel = new ActionBarViewModel(session, connectionStatusViewModel, viewModelCommunication, dialogBuilder); var mainWindowViewModel = new MainWindowViewModel(mainViewModelBuilder, loginViewModelBuilder, notificationServiceContainerViewModel, actionBarViewModel, session, errorCallback); // build mainWindow var mainWindow = new MainWindow { DataContext = mainWindowViewModel }; // set GridContainer as ReferenceElement of AdornerControl adornerControl.ReferenceElement = mainWindow.MainView.OverviewPage.GridContainer; viewModelCommunication.RegisterViewModelMessageHandler <ShowDisabledOverlay>(mainWindowViewModel); viewModelCommunication.RegisterViewModelMessageHandler <HideDisabledOverlay>(mainWindowViewModel); return(mainWindow); }
private void RefreshServerBuild(Server server, List <MainViewModel> plans) { // todo: should be able to populate per server, but I believe this will only handle 1 server try { var bambooService = new BambooService(new Uri(server.Address), server.Username, server.PlaintextPassword); foreach (var buildPlan in server.BuildPlans) { var planDetail = bambooService.GetPlanDetail(buildPlan.Key); planDetail.Results = bambooService.GetPlanResults(buildPlan.Key); var resultDetail = planDetail.Results.FirstOrDefault(); if (resultDetail != null) { var firstOrDefault = planDetail.Results.FirstOrDefault(); if (firstOrDefault != null) { firstOrDefault.Detail = bambooService.GetResultDetail(resultDetail.Key); } } plans.Add(MainViewModelBuilder.Build(planDetail, server)); } GetPlansListViewData(plans); DoNotifications(plans); UpdateTrayIcon(plans); _lastBuildData = plans; } catch (BambooRequestException) { notifyIcon.Icon = _statusIcons[IconEnum.Grey]; foreach (ListViewItem item in buildsListView.Items) { item.ImageKey = "Offline"; } } }