private void InitializeDTE()
        {
            IVsShell shellService;

            dte = GetService(typeof(SDTE)) as EnvDTE80.DTE2;

            var extendedLog = false;
            var settings    = ProjectHelper.GetSettings();

            if (settings != null && settings.CrmConnections != null)
            {
                extendedLog = settings.CrmConnections.ExtendedLog;
            }

            if (dte == null) // The IDE is not yet fully initialized
            {
                Logger.WriteLine("Warning: DTE service is null. Seems that VisualStudio is not fully initialized.", extendedLog);
                Logger.WriteLine("Waiting for DTE.", extendedLog);
                shellService   = GetService(typeof(SVsShell)) as IVsShell;
                dteInitializer = new DteInitializer(shellService, InitializeDTE);
            }
            else
            {
                Logger.WriteLine("DTE service found.", extendedLog);
                dteInitializer = null;
                UpdateWebResources.Initialize(this);
                UpdaterOptions.Initialize(this);
                UpdateSelectedWebResources.Initialize(this);
                CreateWebResource.Initialize(this);
            }
        }
Esempio n. 2
0
        private async Task InitializeDTEAsync(CancellationToken cancellationToken)
        {
            var dteObj = (EnvDTE80.DTE2) await this.GetServiceAsync(typeof(EnvDTE.DTE));

            var settings = await SettingsService.Instance.GetSettingsAsync();

            var extendedLog = false;

            if (settings != null && settings.CrmConnections != null)
            {
                extendedLog = settings.CrmConnections.ExtendedLog;
            }

            if (dteObj == null) // The IDE is not yet fully initialized
            {
                await Logger.WriteLineAsync("Warning: DTE service is null. Seems that VisualStudio is not fully initialized.", extendedLog);

                //Logger.WriteLine("Waiting for DTE.", extendedLog);
                //var shellService = await this.GetServiceAsync(typeof(SVsShell)) as IVsShell;
                //this.dteInitializer = new DteInitializer(shellService, this.InitializeDTE);
            }
            else
            {
                try
                {
                    await Logger.WriteLineAsync("DTE service found.", extendedLog);

                    UpdateWebResources.Initialize(this);
                    UpdaterOptions.Initialize(this);
                    UpdateSelectedWebResources.Initialize(this);
                    CreateWebResource.Initialize(this);

                    await JoinableTaskFactory.SwitchToMainThreadAsync();

                    //Microsoft.VisualStudio.Shell.Events.SolutionEvents.OnAfterCloseSolution +=
                    //(object sender, EventArgs args) =>

                    //dteObj.Events.DTEEvents.OnBeginShutdown +=
                    //() =>
                    //{
                    //    watchdogService.Shutdown();
                    //};
                }
                catch (Exception)
                {
                    await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
                }
            }
        }
Esempio n. 3
0
        private async Task InitializeDTE(CancellationToken cancellationToken)
        {
            var dteObj = await this.GetServiceAsync(typeof(EnvDTE.DTE));

            var settings = await SettingsService.Instance.GetSettingsAsync();

            var extendedLog = false;

            if (settings != null && settings.CrmConnections != null)
            {
                extendedLog = settings.CrmConnections.ExtendedLog;
            }

            if (dteObj == null) // The IDE is not yet fully initialized
            {
                Logger.WriteLine("Warning: DTE service is null. Seems that VisualStudio is not fully initialized.", extendedLog);
                //Logger.WriteLine("Waiting for DTE.", extendedLog);
                //var shellService = await this.GetServiceAsync(typeof(SVsShell)) as IVsShell;
                //this.dteInitializer = new DteInitializer(shellService, this.InitializeDTE);
            }
            else
            {
                try
                {
                    Logger.WriteLine("DTE service found.", extendedLog);
                    UpdateWebResources.Initialize(this);
                    UpdaterOptions.Initialize(this);
                    UpdateSelectedWebResources.Initialize(this);
                    CreateWebResource.Initialize(this);
                }
                catch (Exception ex)
                {
                    await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
                }
            }
        }