Ejemplo n.º 1
0
        public override async void Publish()
        {
            var project = _publishDialog.Project;

            try
            {
                ShellUtils.SaveAllFiles();

                GcpOutputWindow.Activate();
                GcpOutputWindow.Clear();
                GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishStepStartMessage, project.Name));

                _publishDialog.FinishFlow();

                bool result;
                using (var frozen = StatusbarHelper.Freeze())
                    using (var animationShown = StatusbarHelper.ShowDeployAnimation())
                        using (var progress = StatusbarHelper.ShowProgressBar(String.Format(Resources.GcePublishProgressMessage, SelectedInstance.Name)))
                            using (var deployingOperation = ShellUtils.SetShellUIBusy())
                            {
                                result = await WindowsVmDeployment.PublishProjectAsync(
                                    project.FullPath,
                                    SelectedInstance,
                                    SelectedCredentials,
                                    progress,
                                    (l) => GcpOutputWindow.OutputLine(l));
                            }

                if (result)
                {
                    GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishSuccessMessage, project.Name, SelectedInstance.Name));
                    StatusbarHelper.SetText(Resources.PublishSuccessStatusMessage);

                    var url = SelectedInstance.GetDestinationAppUri();
                    GcpOutputWindow.OutputLine(String.Format(Resources.PublishUrlMessage, url));
                    if (OpenWebsite)
                    {
                        Process.Start(url);
                    }
                }
                else
                {
                    GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishFailedMessage, project.Name));
                    StatusbarHelper.SetText(Resources.PublishFailureStatusMessage);
                }
            }
            catch (Exception ex) when(!ErrorHandlerUtils.IsCriticalException(ex))
            {
                GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishFailedMessage, project.Name));
                StatusbarHelper.SetText(Resources.PublishFailureStatusMessage);
            }
        }
Ejemplo n.º 2
0
        public void BeforeEach()
        {
            _toolsPathProviderMock = new Mock <IToolsPathProvider>();
            VsVersionUtils.s_toolsPathProviderOverride = _toolsPathProviderMock.Object;

            _solutionBuildMock = new Mock <SolutionBuild>();
            _activeConfigMock  = new Mock <Configuration>();
            _activeConfigMock.Setup(c => c.ConfigurationName).Returns(DefaultConfigurationName);

            _dteProjectMock = new Mock <IParsedDteProject> {
                DefaultValue = DefaultValue.Mock
            };
            _dteProjectMock.Setup(p => p.Project.DTE.Solution.SolutionBuild).Returns(_solutionBuildMock.Object);
            _dteProjectMock.Setup(p => p.Project.ConfigurationManager.ActiveConfiguration)
            .Returns(_activeConfigMock.Object);
            _dteProjectMock.Setup(p => p.Project.UniqueName).Returns(DefaultUniqueName);

            _runCommandTask     = Task.FromResult(true);
            _processServiceMock = new Mock <IProcessService>();
            _processServiceMock
            .Setup(
                ps => ps.RunCommandAsync(
                    It.IsAny <string>(),
                    It.IsAny <string>(),
                    It.IsAny <Func <string, OutputStream, Task> >(),
                    It.IsAny <string>(),
                    It.IsAny <IDictionary <string, string> >()))
            .Callback <string, string, Func <string, OutputStream, Task>, string, IDictionary <string, string> >(
                (path, parameters, handler, workingDir, env) =>
            {
                _path       = path;
                _parameters = parameters;
                _handler    = handler;
            })
            .Returns(() => _runCommandTask);
            _gcpOutputWindowMock  = new Mock <IGcpOutputWindow>();
            _statusbarServiceMock = new Mock <IStatusbarService> {
                DefaultValue = DefaultValue.Mock
            };
            _shellUtilsMock = new Mock <IShellUtils> {
                DefaultValue = DefaultValue.Mock
            };
            _objectUnderTest = new WindowsVmDeployment(
                _processServiceMock.ToLazy(),
                _shellUtilsMock.ToLazy(),
                _statusbarServiceMock.ToLazy(),
                _gcpOutputWindowMock.ToLazy());
        }
Ejemplo n.º 3
0
        public override async void Publish()
        {
            var project = _publishDialog.Project;

            try
            {
                ShellUtils.SaveAllFiles();

                GcpOutputWindow.Activate();
                GcpOutputWindow.Clear();
                GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishStepStartMessage, project.Name));

                _publishDialog.FinishFlow();

                TimeSpan deploymentDuration;
                bool     result;
                using (var frozen = StatusbarHelper.Freeze())
                    using (var animationShown = StatusbarHelper.ShowDeployAnimation())
                        using (var progress = StatusbarHelper.ShowProgressBar(String.Format(Resources.GcePublishProgressMessage, SelectedInstance.Name)))
                            using (var deployingOperation = ShellUtils.SetShellUIBusy())
                            {
                                var startDeploymentTime = DateTime.Now;
                                result = await WindowsVmDeployment.PublishProjectAsync(
                                    project,
                                    SelectedInstance,
                                    SelectedCredentials,
                                    progress,
                                    VsVersionUtils.ToolsPathProvider,
                                    GcpOutputWindow.OutputLine);

                                deploymentDuration = DateTime.Now - startDeploymentTime;
                            }

                if (result)
                {
                    GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishSuccessMessage, project.Name, SelectedInstance.Name));
                    StatusbarHelper.SetText(Resources.PublishSuccessStatusMessage);

                    var url = SelectedInstance.GetDestinationAppUri();
                    GcpOutputWindow.OutputLine(String.Format(Resources.PublishUrlMessage, url));
                    if (OpenWebsite)
                    {
                        Process.Start(url);
                    }

                    EventsReporterWrapper.ReportEvent(GceDeployedEvent.Create(CommandStatus.Success, deploymentDuration));
                }
                else
                {
                    GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishFailedMessage, project.Name));
                    StatusbarHelper.SetText(Resources.PublishFailureStatusMessage);

                    EventsReporterWrapper.ReportEvent(GceDeployedEvent.Create(CommandStatus.Failure));
                }
            }
            catch (Exception ex) when(!ErrorHandlerUtils.IsCriticalException(ex))
            {
                GcpOutputWindow.OutputLine(String.Format(Resources.GcePublishFailedMessage, project.Name));
                StatusbarHelper.SetText(Resources.PublishFailureStatusMessage);

                EventsReporterWrapper.ReportEvent(GceDeployedEvent.Create(CommandStatus.Failure));
            }
        }