Esempio n. 1
0
        public Tool(IPackageContext packageContext, IBuildInfo buildContext, IBuildDistributor buildDistributor, ControlViewModel viewModel)
        {
            _packageContext = packageContext;
            _dte            = packageContext.GetDTE();
            _dte2           = packageContext.GetDTE2();
            if (_dte == null)
            {
                throw new InvalidOperationException("Unable to get DTE instance.");
            }

            _dteStatusBar = packageContext.GetStatusBar();
            if (_dteStatusBar == null)
            {
                TraceManager.TraceError("Unable to get IVsStatusbar instance.");
            }

            _toolWindowManager = new ToolWindowManager(packageContext);

            _buildContext     = buildContext;
            _buildDistributor = buildDistributor;

            _viewModel      = viewModel;
            _solutionEvents = _dte.Events.SolutionEvents;

            Initialize();
        }
        public ControlViewModel(ControlModel model, IPackageContext packageContext)
        {
            _model = model;
            _packageContext = packageContext;

            _settings = packageContext.ControlSettings;
            _buildProgressViewModel = new BuildProgressViewModel(_settings);

            packageContext.ControlSettingsChanged += OnControlSettingsChanged;
        }
        public ControlViewModel(ControlModel model, IPackageContext packageContext)
        {
            _model          = model;
            _packageContext = packageContext;

            _settings = packageContext.ControlSettings;
            _buildProgressViewModel = new BuildProgressViewModel(_settings);

            packageContext.ControlSettingsChanged += OnControlSettingsChanged;
        }
        public ToolWindowManager(IPackageContext packageContext)
        {
            _dte = packageContext.GetDTE();
            if (_dte == null)
                throw new InvalidOperationException("Unable to get DTE instance.");

            _windowFrame = (IVsWindowFrame)packageContext.GetToolWindow().Frame;
            if (_windowFrame == null)
                throw new InvalidOperationException("Unable to get IVsWindowFrame instance.");

            _window = GetWindowInstance(packageContext.GetDTE(), typeof(ToolWindow).GUID);
            if (_window == null)
                throw new InvalidOperationException("Unable to get Window instance.");
        }
        public DefaultBackOfficeRequestContext(IRebelApplicationContext applicationContext,
                                               HttpContextBase httpContext,
                                               ComponentRegistrations components,
                                               IPackageContext packageContext,
                                               IRoutingEngine routingEngine)
            : base(applicationContext, components, routingEngine)
        {
            //create the IO resolvers
            var urlHelper = new UrlHelper(httpContext.Request.RequestContext);

            DocumentTypeIconResolver      = new DocumentTypeIconFileResolver(httpContext.Server, applicationContext.Settings, urlHelper);
            DocumentTypeThumbnailResolver = new DocumentTypeThumbnailFileResolver(httpContext.Server, applicationContext.Settings, urlHelper);
            ApplicationIconResolver       = new ApplicationIconFileResolver(httpContext.Server, applicationContext.Settings, urlHelper);

            PackageContext = packageContext;
        }
        public DefaultBackOfficeRequestContext(IRebelApplicationContext applicationContext,
            HttpContextBase httpContext,
            ComponentRegistrations components,
            IPackageContext packageContext,
            IRoutingEngine routingEngine)
            : base(applicationContext, components, routingEngine)
        {

            //create the IO resolvers
            var urlHelper = new UrlHelper(httpContext.Request.RequestContext);
            DocumentTypeIconResolver = new DocumentTypeIconFileResolver(httpContext.Server, applicationContext.Settings, urlHelper);
            DocumentTypeThumbnailResolver = new DocumentTypeThumbnailFileResolver(httpContext.Server, applicationContext.Settings, urlHelper);
            ApplicationIconResolver = new ApplicationIconFileResolver(httpContext.Server, applicationContext.Settings, urlHelper);

            PackageContext = packageContext;
        }
 private void ToolInitialize()
 {
     try
     {
         ControlSettings = LoadSettings(this);
         var             toolWindow     = GetToolWindow();
         IPackageContext packageContext = this;
         var             viewModel      = ToolWindow.GetViewModel(toolWindow);
         var             buildContext   = new BuildContext(packageContext, viewModel);
         var             tool           = new Tool.Tool(packageContext, buildContext, buildContext, viewModel);
     }
     catch (Exception ex)
     {
         ex.TraceUnknownException();
     }
 }
        public async Task Upload([FromServices] IPackageContext packageContext, CancellationToken cancellationToken)
        {
            try
            {
                using var uploadStream = await Request.GetUploadStreamOrNullAsync(cancellationToken);

                if (uploadStream == null)
                {
                    HttpContext.Response.StatusCode = 400;
                    return;
                }

                var result = await _indexer.IndexAsync(uploadStream, cancellationToken);

                switch (result.Status)
                {
                case PackageIndexingStatus.InvalidPackage:
                    HttpContext.Response.StatusCode = 400;
                    break;

                case PackageIndexingStatus.PackageAlreadyExists:
                    HttpContext.Response.StatusCode = 409;
                    break;

                case PackageIndexingStatus.Success:
                    HttpContext.Response.StatusCode = 201;
                    packageContext.PackageId        = result.PackageId;
                    packageContext.PackageVersion   = result.PackageVersion;
                    break;
                }
            }
            catch (ArgumentException ae)
                when(ae.Message.StartsWith("An item with the same key has already been added"))
                {
                    // This probably means that package already exists in the database but there is no content stored.
                    HttpContext.Response.StatusCode = 410;
                }
            catch (Exception e)
            {
                _logger.LogError(e, "Exception thrown during package upload");

                HttpContext.Response.StatusCode = 500;
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="settings"></param>
        /// <param name="packageContext"></param>
        public PluginViewEngine(UmbracoSettings settings, IPackageContext packageContext)
        {
            _settings = settings;
            _packageContext = packageContext;

            // TODO: Resolve TwoLevelViewCache problems in release builds, as it seems to cache views without taking parent folder into account
            ViewLocationCache = DefaultViewLocationCache.Null;
            //if (HttpContext.Current == null || HttpContext.Current.IsDebuggingEnabled)
            //{
            //    ViewLocationCache = DefaultViewLocationCache.Null;
            //}
            //else
            //{
            //    //override the view location cache with our 2 level view location cache
            //    ViewLocationCache = new TwoLevelViewCache(ViewLocationCache);
            //}
            
            
            SetViewLocations();
        }
Esempio n. 10
0
        public ToolWindowManager(IPackageContext packageContext)
        {
            _dte = packageContext.GetDTE();
            if (_dte == null)
            {
                throw new InvalidOperationException("Unable to get DTE instance.");
            }

            _windowFrame = (IVsWindowFrame)packageContext.GetToolWindow().Frame;
            if (_windowFrame == null)
            {
                throw new InvalidOperationException("Unable to get IVsWindowFrame instance.");
            }

            _window = GetWindowInstance(packageContext.GetDTE(), typeof(ToolWindow).GUID);
            if (_window == null)
            {
                throw new InvalidOperationException("Unable to get Window instance.");
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="settings"></param>
        /// <param name="packageContext"></param>
        public PluginViewEngine(RebelSettings settings, IPackageContext packageContext)
        {
            _settings       = settings;
            _packageContext = packageContext;

            // TODO: Resolve TwoLevelViewCache problems in release builds, as it seems to cache views without taking parent folder into account
            ViewLocationCache = DefaultViewLocationCache.Null;
            //if (HttpContext.Current == null || HttpContext.Current.IsDebuggingEnabled)
            //{
            //    ViewLocationCache = DefaultViewLocationCache.Null;
            //}
            //else
            //{
            //    //override the view location cache with our 2 level view location cache
            //    ViewLocationCache = new TwoLevelViewCache(ViewLocationCache);
            //}


            SetViewLocations();
        }
        public async Task Upload([FromServices] IPackageContext packageContext, CancellationToken cancellationToken)
        {
            try
            {
                using var uploadStream = await Request.GetUploadStreamOrNullAsync(cancellationToken);

                if (uploadStream == null)
                {
                    HttpContext.Response.StatusCode = 400;
                    return;
                }

                var result = await _indexer.IndexAsync(uploadStream, cancellationToken);

                switch (result.Status)
                {
                case SymbolIndexingStatus.InvalidSymbolPackage:
                    HttpContext.Response.StatusCode = 400;
                    break;

                case SymbolIndexingStatus.PackageNotFound:
                    HttpContext.Response.StatusCode = 404;
                    break;

                case SymbolIndexingStatus.Success:
                    HttpContext.Response.StatusCode = 201;
                    packageContext.PackageId        = result.PackageId;
                    packageContext.PackageVersion   = result.PackageVersion;
                    break;
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Exception thrown during symbol upload");

                HttpContext.Response.StatusCode = 500;
            }
        }
Esempio n. 13
0
        public BuildContext(IPackageContext packageContext, ControlViewModel viewModel)
        {
            _viewModel                  = viewModel;
            BuildedProjects             = new BuildedProjectsCollection();
            BuildingProjects            = new List <ProjectItem>();
            _buildingProjectsLockObject = ((ICollection)BuildingProjects).SyncRoot;

            _packageContext = packageContext;

            Events dteEvents = packageContext.GetDTE().Events;

            _buildEvents   = dteEvents.BuildEvents;
            _windowEvents  = dteEvents.WindowEvents;
            _commandEvents = dteEvents.CommandEvents;

            _buildEvents.OnBuildBegin           += BuildEvents_OnBuildBegin;
            _buildEvents.OnBuildDone            += (s, e) => BuildEvents_OnBuildDone();
            _buildEvents.OnBuildProjConfigBegin += BuildEvents_OnBuildProjectBegin;
            _buildEvents.OnBuildProjConfigDone  += BuildEvents_OnBuildProjectDone;

            _windowEvents.WindowActivated += WindowEvents_WindowActivated;

            _commandEvents.AfterExecute += CommandEvents_AfterExecute;
        }
Esempio n. 14
0
        public Tool(
            IPackageContext packageContext,
            BuildInfo buildContext, 
            IBuildDistributor buildDistributor, 
            ControlViewModel viewModel)
        {
            _dte = packageContext.GetDTE();
            if (_dte == null)
                throw new InvalidOperationException("Unable to get DTE instance.");

            _dteStatusBar = packageContext.GetStatusBar();
            if (_dteStatusBar == null)
                TraceManager.TraceError("Unable to get IVsStatusbar instance.");

            _toolWindowManager = new ToolWindowManager(packageContext);

            _buildContext = buildContext;
            _buildDistributor = buildDistributor;

            _viewModel = viewModel;
            _solutionEvents = _dte.Events.SolutionEvents;

            Initialize();
        }
Esempio n. 15
0
        public BuildContext(IPackageContext packageContext, FindProjectItemDelegate findProjectItem)
        {
            _buildedProjects = new BuildedProjectsCollection();
            _buildingProjects = new List<ProjectItem>();
            _buildingProjectsLockObject = ((ICollection)_buildingProjects).SyncRoot;

            _packageContext = packageContext;
            _findProjectItem = findProjectItem;

            Events dteEvents = packageContext.GetDTE().Events;
            _buildEvents = dteEvents.BuildEvents;
            _windowEvents = dteEvents.WindowEvents;
            _commandEvents = dteEvents.CommandEvents;

            _buildEvents.OnBuildBegin += BuildEvents_OnBuildBegin;
            _buildEvents.OnBuildDone += (s, e) => BuildEvents_OnBuildDone();
            _buildEvents.OnBuildProjConfigBegin += BuildEvents_OnBuildProjectBegin;
            _buildEvents.OnBuildProjConfigDone += BuildEvents_OnBuildProjectDone;

            _windowEvents.WindowActivated += WindowEvents_WindowActivated;

            _commandEvents.AfterExecute += CommandEvents_AfterExecute;
        }
        public async Task <IActionResult> DownloadPackageAsync(string id, string version, [FromServices] IPackageContext packageContext, CancellationToken cancellationToken)
        {
            if (!NuGetVersion.TryParse(version, out var nugetVersion))
            {
                return(NotFound());
            }

            using var packageStream = await _content.GetPackageContentStreamOrNullAsync(id, nugetVersion, cancellationToken);

            if (packageStream == null)
            {
                return(NotFound());
            }

            packageContext.PackageId      = id;
            packageContext.PackageVersion = version;

            return(new FileContentResult(packageStream.AsMemoryStream().ToArray(), "application/octet-stream")
            {
                FileDownloadName = $"{id}.nupkg"
            });
        }