Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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";
                }
            }
        }