public ProjectExplorerWindow(IServiceProvider serviceProvider)
        {
            InitializeComponent();

            this.dockPanel       = serviceProvider.GetService <IMainForm>().MainPanel;
            this.serviceProvider = serviceProvider;

            this.TabText = this.Text;

            //
            // This window is a singleton, so we never want it to be closed,
            // just hidden.
            //
            this.HideOnClose = true;

            this.vsToolStripExtender.SetStyle(
                this.toolStrip,
                VisualStudioToolStripExtender.VsVersion.Vs2015,
                this.vs2015LightTheme);

            this.treeView.Nodes.Add(this.rootNode);

            this.mainForm                = serviceProvider.GetService <IMainForm>();
            this.eventService            = serviceProvider.GetService <IEventService>();
            this.jobService              = serviceProvider.GetService <IJobService>();
            this.projectInventoryService = serviceProvider.GetService <ProjectInventoryService>();
            this.settingsRepository      = serviceProvider.GetService <ConnectionSettingsRepository>();
            this.authService             = serviceProvider.GetService <IAuthorizationAdapter>();
            this.remoteDesktopService    = serviceProvider.GetService <IRemoteDesktopService>();

            this.eventService.BindAsyncHandler <ProjectInventoryService.ProjectAddedEvent>(OnProjectAdded);
            this.eventService.BindHandler <ProjectInventoryService.ProjectDeletedEvent>(OnProjectDeleted);
            this.eventService.BindHandler <RemoteDesktopConnectionSuceededEvent>(OnRdpConnectionSucceeded);
            this.eventService.BindHandler <RemoteDesktopWindowClosedEvent>(OnRdpConnectionClosed);
        }
 public CredentialsService(IServiceProvider serviceProvider)
 {
     this.jobService           = serviceProvider.GetService <IJobService>();
     this.eventService         = serviceProvider.GetService <IEventService>();
     this.authService          = serviceProvider.GetService <IAuthorizationAdapter>();
     this.computeEngineAdapter = serviceProvider.GetService <IComputeEngineAdapter>();
 }
 public ResourceManagerAdapter(IAuthorizationAdapter authService)
 {
     this.service = new CloudResourceManagerService(
         new BaseClientService.Initializer
     {
         HttpClientInitializer = authService.Authorization.Credential,
         ApplicationName       = Globals.UserAgent.ToApplicationName()
     });
 }
Esempio n. 4
0
        public ComputeEngineAdapter(IAuthorizationAdapter authService)
        {
            var assemblyName = typeof(IComputeEngineAdapter).Assembly.GetName();

            this.service = new ComputeService(new BaseClientService.Initializer
            {
                HttpClientInitializer = authService.Authorization.Credential,
                ApplicationName       = $"{assemblyName.Name}/{assemblyName.Version}"
            });
        }
 public SshConnectionService(IServiceProvider serviceProvider)
 {
     this.jobService           = serviceProvider.GetService <IJobService>();
     this.sessionBroker        = serviceProvider.GetService <ISshTerminalSessionBroker>();
     this.tunnelBroker         = serviceProvider.GetService <ITunnelBrokerService>();
     this.settingsService      = serviceProvider.GetService <IConnectionSettingsService>();
     this.authorizedKeyService = serviceProvider.GetService <IAuthorizedKeyService>();
     this.keyStoreAdapter      = serviceProvider.GetService <IKeyStoreAdapter>();
     this.authorizationAdapter = serviceProvider.GetService <IAuthorizationAdapter>();
     this.window = serviceProvider.GetService <IMainForm>().Window;
 }
        //---------------------------------------------------------------------
        // Ctor.
        //---------------------------------------------------------------------

        public AuthorizedKeyService(
            IAuthorizationAdapter authorizationAdapter,
            IComputeEngineAdapter computeEngineAdapter,
            IResourceManagerAdapter resourceManagerAdapter,
            IOsLoginService osLoginService)
        {
            this.authorizationAdapter   = authorizationAdapter;
            this.computeEngineAdapter   = computeEngineAdapter;
            this.resourceManagerAdapter = resourceManagerAdapter;
            this.osLoginService         = osLoginService;
        }
Esempio n. 7
0
        public ResourceManagerAdapter(IAuthorizationAdapter authService)
        {
            var assemblyName = typeof(IResourceManagerAdapter).Assembly.GetName();

            this.service = new CloudResourceManagerService(
                new BaseClientService.Initializer
            {
                HttpClientInitializer = authService.Authorization.Credential,
                ApplicationName       = $"{assemblyName.Name}/{assemblyName.Version}"
            });
        }
Esempio n. 8
0
        //---------------------------------------------------------------------
        // Ctor.
        //---------------------------------------------------------------------

        public OsLoginAdapter(IAuthorizationAdapter authAdapter)
        {
            this.authorizationAdapter = authAdapter;
            this.service = new CloudOSLoginService(
                ClientServiceFactory.ForMtlsEndpoint(
                    authAdapter.Authorization.Credential,
                    authAdapter.DeviceEnrollment,
                    MtlsBaseUri));

            Debug.Assert(
                (authAdapter.DeviceEnrollment?.Certificate != null &&
                 HttpClientHandlerExtensions.IsClientCertificateSupported)
                == IsDeviceCertiticateAuthenticationEnabled);
        }
Esempio n. 9
0
        public ProjectExplorerWindow(IServiceProvider serviceProvider)
        {
            InitializeComponent();

            this.dockPanel       = serviceProvider.GetService <IMainForm>().MainPanel;
            this.serviceProvider = serviceProvider;

            this.TabText = this.Text;

            //
            // This window is a singleton, so we never want it to be closed,
            // just hidden.
            //
            this.HideOnClose = true;

            this.vsToolStripExtender.SetStyle(
                this.toolStrip,
                VisualStudioToolStripExtender.VsVersion.Vs2015,
                this.vs2015LightTheme);

            this.treeView.Nodes.Add(this.rootNode);

            this.mainForm                = serviceProvider.GetService <IMainForm>();
            this.eventService            = serviceProvider.GetService <IEventService>();
            this.jobService              = serviceProvider.GetService <IJobService>();
            this.projectInventoryService = serviceProvider.GetService <IProjectRepository>();
            this.authService             = serviceProvider.GetService <IAuthorizationAdapter>();
            this.connectionBroker        = serviceProvider.GetService <IGlobalConnectionBroker>();

            this.eventService.BindAsyncHandler <ProjectAddedEvent>(OnProjectAdded);
            this.eventService.BindHandler <ProjectDeletedEvent>(OnProjectDeleted);
            this.eventService.BindHandler <ConnectionSuceededEvent>(OnRdpConnectionSucceeded);
            this.eventService.BindHandler <ConnectionClosedEvent>(OnRdpConnectionClosed);

            this.ContextMenuCommands = new CommandContainer <IProjectExplorerNode>(
                this,
                this.contextMenu.Items,
                ToolStripItemDisplayStyle.ImageAndText,
                this.serviceProvider);
            this.ToolbarCommands = new CommandContainer <IProjectExplorerNode>(
                this,
                this.toolStrip.Items,
                ToolStripItemDisplayStyle.Image,
                this.serviceProvider);
        }
Esempio n. 10
0
 public AuditLogAdapter(IAuthorizationAdapter authService)
     : this(
         authService.Authorization.Credential,
         authService.DeviceEnrollment)
 {
 }
Esempio n. 11
0
        public ProjectExplorerWindow(IServiceProvider serviceProvider)
            : base(serviceProvider, DockState.DockLeft)
        {
            InitializeComponent();

            this.serviceProvider = serviceProvider;

            this.TabText = this.Text;

            //
            // This window is a singleton, so we never want it to be closed,
            // just hidden.
            //
            this.HideOnClose = true;

            this.vsToolStripExtender.SetStyle(
                this.toolStrip,
                VisualStudioToolStripExtender.VsVersion.Vs2015,
                this.vs2015LightTheme);

            this.mainForm    = serviceProvider.GetService <IMainForm>();
            this.jobService  = serviceProvider.GetService <IJobService>();
            this.authService = serviceProvider.GetService <IAuthorizationAdapter>();

            this.ContextMenuCommands = new CommandContainer <IProjectModelNode>(
                this,
                this.contextMenu.Items,
                ToolStripItemDisplayStyle.ImageAndText,
                this.serviceProvider);
            this.ToolbarCommands = new CommandContainer <IProjectModelNode>(
                this,
                this.toolStrip.Items,
                ToolStripItemDisplayStyle.Image,
                this.serviceProvider);

            this.viewModel = new ProjectExplorerViewModel(
                this,
                serviceProvider.GetService <ApplicationSettingsRepository>(),
                this.jobService,
                serviceProvider.GetService <IEventService>(),
                serviceProvider.GetService <IGlobalSessionBroker>(),
                serviceProvider.GetService <IProjectModelService>(),
                serviceProvider.GetService <ICloudConsoleService>());

            this.viewModel.OnPropertyChange(
                m => m.SelectedNode,
                node =>
            {
                //
                // NB. Due to lazily loading and inaccessible projects,
                // ModelNode can be null.
                //
                if (node?.ModelNode != null)
                {
                    this.ContextMenuCommands.Context = node.ModelNode;
                    this.ToolbarCommands.Context     = node.ModelNode;
                }
            });

            this.Disposed += (sender, args) =>
            {
                this.viewModel.Dispose();
            };

            //
            // Bind tree view.
            //
            this.treeView.BindChildren(node => node.GetFilteredNodesAsync(false));
            this.treeView.BindImageIndex(node => node.ImageIndex);
            this.treeView.BindSelectedImageIndex(node => node.ImageIndex);
            this.treeView.BindIsExpanded(node => node.IsExpanded);
            this.treeView.BindIsLeaf(node => node.IsLeaf);
            this.treeView.BindText(node => node.Text);
            this.treeView.Bind(this.viewModel.RootNode);
            this.treeView.OnControlPropertyChange(
                c => c.SelectedModelNode,
                node => this.viewModel.SelectedNode = node);

            this.treeView.LoadingChildrenFailed += (sender, args) =>
            {
                if (!args.Exception.IsCancellation())
                {
                    this.serviceProvider
                    .GetService <IExceptionDialog>()
                    .Show(this, "Loading project failed", args.Exception);
                }
            };

            //
            // Bind search box and progress bar.
            //
            var searchButton = this.searchTextBox.AddOverlayButton(Resources.Search_16);

            this.progressBar.BindProperty(
                c => c.Enabled,
                viewModel,
                m => m.IsLoading,
                this.Container);
            this.progressBar.BindProperty(
                c => c.Visible,
                viewModel,
                m => m.IsLoading,
                this.Container);
            this.searchTextBox.BindProperty(
                c => c.Text,
                viewModel,
                m => m.InstanceFilter,
                this.Container);
            //searchButton.Click += (s, a) => StartSearch();

            //
            // Bind toolbar controls.
            //
            this.linuxInstancesToolStripMenuItem.BindProperty(
                c => c.Checked,
                this.viewModel,
                m => m.IsLinuxIncluded,
                this.Container);
            this.windowsInstancesToolStripMenuItem.BindProperty(
                c => c.Checked,
                this.viewModel,
                m => m.IsWindowsIncluded,
                this.Container);

            //
            // Bind menu items.
            //
            this.unloadProjectToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsUnloadProjectCommandVisible,
                this.Container);
            this.refreshToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsRefreshProjectsCommandVisible,
                this.Container);
            this.refreshAllProjectsToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsRefreshAllProjectsCommandVisible,
                this.Container);
            this.openInCloudConsoleToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsCloudConsoleCommandVisible,
                this.Container);
            this.iapSeparatorToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsCloudConsoleCommandVisible,
                this.Container);
            this.cloudConsoleSeparatorToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsCloudConsoleCommandVisible,
                this.Container);
            this.configureIapAccessToolStripMenuItem.BindProperty(
                c => c.Visible,
                this.viewModel,
                m => m.IsCloudConsoleCommandVisible,
                this.Container);
        }
Esempio n. 12
0
 public TunnelService(IServiceProvider serviceProvider)
 {
     this.authorizationService = serviceProvider.GetService <IAuthorizationAdapter>();
 }
Esempio n. 13
0
 public TunnelService(IAuthorizationAdapter authorizationService)
 {
     this.authorizationService = authorizationService;
 }
 public ResourceManagerAdapter(IAuthorizationAdapter authService)
     : this(
         authService.Authorization.Credential,
         authService.DeviceEnrollment)
 {
 }
Esempio n. 15
0
 public JobService(IAuthorizationAdapter authService, IJobHost host)
 {
     this.authService = authService;
     this.host        = host;
 }
 public ResourceManagerAdapter(IAuthorizationAdapter authService)
     : this(authService.Authorization.Credential)
 {
 }
        public ProjectExplorerWindow(IServiceProvider serviceProvider)
            : base(serviceProvider, DockState.DockLeft)
        {
            InitializeComponent();

            this.serviceProvider = serviceProvider;

            this.TabText = this.Text;

            //
            // This window is a singleton, so we never want it to be closed,
            // just hidden.
            //
            this.HideOnClose = true;

            this.vsToolStripExtender.SetStyle(
                this.toolStrip,
                VisualStudioToolStripExtender.VsVersion.Vs2015,
                this.vs2015LightTheme);

            this.treeView.Nodes.Add(this.rootNode);

            this.mainForm                = serviceProvider.GetService <IMainForm>();
            this.eventService            = serviceProvider.GetService <IEventService>();
            this.jobService              = serviceProvider.GetService <IJobService>();
            this.projectInventoryService = serviceProvider.GetService <IProjectRepository>();
            this.authService             = serviceProvider.GetService <IAuthorizationAdapter>();
            this.sessionBroker           = serviceProvider.GetService <IGlobalSessionBroker>();

            this.eventService.BindAsyncHandler <ProjectAddedEvent>(OnProjectAdded);
            this.eventService.BindHandler <ProjectDeletedEvent>(OnProjectDeleted);
            this.eventService.BindHandler <SessionStartedEvent>(OnRdpSessionStarted);
            this.eventService.BindHandler <SessionEndedEvent>(OnRdpSessionEnded);

            this.ContextMenuCommands = new CommandContainer <IProjectExplorerNode>(
                this,
                this.contextMenu.Items,
                ToolStripItemDisplayStyle.ImageAndText,
                this.serviceProvider);
            this.ToolbarCommands = new CommandContainer <IProjectExplorerNode>(
                this,
                this.toolStrip.Items,
                ToolStripItemDisplayStyle.Image,
                this.serviceProvider);

            this.viewModel = new ProjectExplorerViewModel(
                serviceProvider.GetService <ApplicationSettingsRepository>());
            this.Disposed += (sender, args) =>
            {
                this.viewModel.Dispose();
            };

            //
            // Bind controls.
            //
            this.linuxInstancesToolStripMenuItem.BindProperty(
                c => c.Checked,
                this.viewModel,
                m => m.IsLinuxIncluded,
                this.Container);
            this.windowsInstancesToolStripMenuItem.BindProperty(
                c => c.Checked,
                this.viewModel,
                m => m.IsWindowsIncluded,
                this.Container);

            this.viewModel.PropertyChanged += (sender, args) =>
            {
                // Refresh tree, and show message on error.
                refreshButton_Click(sender, EventArgs.Empty);
            };
        }
 public ComputeEngineAdapter(IAuthorizationAdapter authService)
     : this(authService.Authorization.Credential)
 {
 }
Esempio n. 19
0
 public ComputeEngineAdapter(IAuthorizationAdapter authService)
     : this(
         authService.Authorization.Credential,
         authService.DeviceEnrollment)
 {
 }