示例#1
0
        public void WhenSetValidVmInstanceSettings_GetVmInstanceSettingsReturnSameValues()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectSettings()
            {
                ProjectId = "pro-1"
            });
            repository.SetVmInstanceSettings("pro-1", new VmInstanceSettings()
            {
                InstanceName        = "vm-1",
                Username            = "******",
                ConnectionBar       = RdpConnectionBarState.Pinned,
                DesktopSize         = RdpDesktopSize.ScreenSize,
                AuthenticationLevel = RdpAuthenticationLevel.RequireServerAuthentication,
                ColorDepth          = RdpColorDepth.DeepColor,
                AudioMode           = RdpAudioMode.DoNotPlay,
                RedirectClipboard   = RdpRedirectClipboard.Enabled
            });

            var settings = repository.GetVmInstanceSettings("pro-1", "vm-1");

            Assert.AreEqual("user-1", settings.Username);
            Assert.AreEqual(RdpConnectionBarState.Pinned, settings.ConnectionBar);
            Assert.AreEqual(RdpDesktopSize.ScreenSize, settings.DesktopSize);
            Assert.AreEqual(RdpAuthenticationLevel.RequireServerAuthentication, settings.AuthenticationLevel);
            Assert.AreEqual(RdpColorDepth.DeepColor, settings.ColorDepth);
            Assert.AreEqual(RdpAudioMode.DoNotPlay, settings.AudioMode);
            Assert.AreEqual(RdpRedirectClipboard.Enabled, settings.RedirectClipboard);
        }
 public ProjectInventoryService(
     InventorySettingsRepository inventorySettings,
     IEventService eventService)
 {
     this.inventorySettings = inventorySettings;
     this.eventService      = eventService;
 }
示例#3
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 <ProjectInventoryService>();
            this.settingsRepository      = serviceProvider.GetService <InventorySettingsRepository>();
            this.authService             = serviceProvider.GetService <IAuthorizationService>();
            this.remoteDesktopService    = serviceProvider.GetService <RemoteDesktopService>();

            this.eventService.BindAsyncHandler <ProjectInventoryService.ProjectAddedEvent>(OnProjectAdded);
            this.eventService.BindHandler <ProjectInventoryService.ProjectDeletedEvent>(OnProjectDeleted);
            this.eventService.BindHandler <RemoteDesktopConnectionSuceededEvent>(OnRdpConnectionSucceeded);
            this.eventService.BindHandler <RemoteDesktopWindowClosedEvent>(OnRdpConnectionClosed);
        }
示例#4
0
        public void WhenBaseKeyDoesNotExist_ListProjectSettingsReturnsEmptyList()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            var projects = repository.ListProjectSettings();

            Assert.IsFalse(projects.Any());
        }
示例#5
0
        public void WhenIdDoesNotExist_GetProjectSettingsReturnsDefaults()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetProjectSettings("some-project");
            });
        }
示例#6
0
        public void WhenProjectIdDoesNotExist_GetVmInstanceSettingsThrowsKeyNotFoundException()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetVmInstanceSettings("nonexisting-project", "vm-id");
            });
        }
 public ProjectNode(InventorySettingsRepository settingsRepository, string projectId)
     : base(
         projectId,
         IconIndex,
         settingsRepository.GetProjectSettings(projectId),
         settings => settingsRepository.SetProjectSettings((ProjectSettings)settings),
         null)
 {
     this.settingsRepository = settingsRepository;
 }
示例#8
0
        public void WhenBaseKeyIsEmpty_SettingsAreEmpty()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            var settings = repository.GetSettings();

            Assert.IsNull(settings.Username);
            Assert.IsNull(settings.Password);
            Assert.IsNull(settings.Domain);
        }
示例#9
0
        public void WhenZoneIdDoesNotExist_GetZoneSettingsReturnsDefaults()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectSettings()
            {
                ProjectId = "pro-1"
            });

            var settings = repository.GetZoneSettings("pro-1", "some-zone");

            Assert.AreEqual("some-zone", settings.ZoneId);
        }
示例#10
0
        public void WhenVmInstanceIdDoesNotExist_GetVmInstanceSettingsReturnsDefaults()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectSettings()
            {
                ProjectId = "pro-1"
            });

            var settings = repository.GetVmInstanceSettings("pro-1", "some-vm");

            Assert.AreEqual("some-vm", settings.InstanceName);
            Assert.IsNull(settings.Username);
        }
示例#11
0
        public void WhenSettingsSaved_GetSettingsReturnsData()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            var originalSettings = new InventorySettings()
            {
                Username = "******"
            };

            repository.SetSettings(originalSettings);

            var settings = repository.GetSettings();

            Assert.AreEqual(originalSettings.Username, settings.Username);
        }
示例#12
0
        public void WhenProjectSettingsSaved_ProjectReturnedInListProjects()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            var originalSettings = new ProjectSettings()
            {
                ProjectId = "pro-1",
                Username  = "******"
            };

            repository.SetProjectSettings(originalSettings);

            var projects = repository.ListProjectSettings();

            Assert.AreEqual(1, projects.Count());
        }
示例#13
0
        public void WhenSetValidZoneSettings_GetZoneSettingsReturnSameValues()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectSettings()
            {
                ProjectId = "pro-1"
            });
            repository.SetZoneSettings("pro-1", new ZoneSettings()
            {
                ZoneId   = "zone-1",
                Username = "******"
            });

            Assert.AreEqual("user-1", repository.GetZoneSettings("pro-1", "zone-1").Username);
        }
示例#14
0
        public SettingsEditorWindow(IServiceProvider serviceProvider)
        {
            InitializeComponent();

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

            this.TabText = this.Text;

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

            this.eventService = serviceProvider.GetService <IEventService>();
            this.inventorySettingsRepository = serviceProvider.GetService <InventorySettingsRepository>();

            this.eventService.BindHandler <ProjectExplorerNodeSelectedEvent>(OnProjectExplorerNodeSelected);
        }
示例#15
0
        public void WhenProjectSettingsDeleted_GetProjectSettingsThrowsKeyNotFoundException()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            var originalSettings = new ProjectSettings()
            {
                ProjectId = "pro-1",
                Username  = "******"
            };

            repository.SetProjectSettings(originalSettings);
            repository.DeleteProjectSettings(originalSettings.ProjectId);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetProjectSettings(originalSettings.ProjectId);
            });
        }
示例#16
0
 public UnitOfWork(RestProContext context)
 {
     _context   = context;
     Users      = new UserRepository(_context);
     WorkCycles = new WorkCycleRepository(_context);
     UserAuthenticationService = new UserAuthenticationService(new UserRepository(_context));
     Suppliers                      = new SupplierRepository(_context);
     Statuses                       = new StatusRepository(_context);
     PurchaseOrders                 = new PurchaseOrderRepository(_context);
     RawMaterials                   = new RawMaterialsRepository(_context);
     RawMaterialCategories          = new RawMaterialCategoryRepository(_context);
     Locations                      = new LocationRepository(_context);
     InventorySettings              = new InventorySettingsRepository(_context);
     WorkCycleStatuses              = new WorkCycleStatusRepository(_context);
     PurchaseOrderTransactions      = new PurchaseOrderTransactionRepository(_context);
     WorkCycleTransactions          = new WorkCycleTransactionRepository(_context);
     WorkCyclesLines                = new WorkCycleLineRepository(_context);
     Inventory                      = new InventoryRepository(_context);
     InventoryTransactionRepository = new InventoryTransactionsRepository(_context);
 }
示例#17
0
        public void WhenProjectSettingsDeleted_VmInstanceSettingsAreDeletedToo()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectSettings()
            {
                ProjectId = "pro-1"
            });
            repository.SetVmInstanceSettings("pro-1", new VmInstanceSettings()
            {
                InstanceName = "vm-1",
                Username     = "******"
            });
            repository.DeleteProjectSettings("pro-1");

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetVmInstanceSettings("pro-1", "vm-1");
            });
        }
示例#18
0
        public void WhenProjectSettingsSavedTwice_GetProjectSettingsReturnsLatestData()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new InventorySettingsRepository(baseKey);

            var originalSettings = new ProjectSettings()
            {
                ProjectId = "pro-1",
                Username  = "******"
            };

            repository.SetProjectSettings(originalSettings);

            originalSettings.Username = "******";
            repository.SetProjectSettings(originalSettings);

            var settings = repository.GetProjectSettings(originalSettings.ProjectId);

            Assert.AreEqual(originalSettings.ProjectId, settings.ProjectId);
            Assert.AreEqual(originalSettings.Username, settings.Username);
        }
示例#19
0
        public MainForm(IServiceProvider serviceProvider)
        {
            this.serviceProvider     = serviceProvider;
            this.applicationSettings = serviceProvider.GetService <ApplicationSettingsRepository>();
            this.authSettings        = serviceProvider.GetService <AuthSettingsRepository>();
            this.inventorySettings   = serviceProvider.GetService <InventorySettingsRepository>();

            //
            // Restore window settings.
            //
            var windowSettings = this.applicationSettings.GetSettings();

            if (windowSettings.IsMainWindowMaximized)
            {
                this.WindowState = FormWindowState.Maximized;
                InitializeComponent();
            }
            else if (windowSettings.MainWindowHeight != 0 &&
                     windowSettings.MainWindowWidth != 0)
            {
                InitializeComponent();
                this.Size = new Size(
                    windowSettings.MainWindowWidth,
                    windowSettings.MainWindowHeight);
            }
            else
            {
                InitializeComponent();
            }

            // Set fixed size for the left/right panels.
            this.dockPanel.DockLeftPortion      =
                this.dockPanel.DockRightPortion = (300.0f / this.Width);

            this.checkForUpdatesOnExitToolStripMenuItem.Checked
                = this.applicationSettings.GetSettings().IsUpdateCheckEnabled;
        }