public PackageService(IEnumerable <PackageStartupInfo> packages, IPackageStorage storage) { _storage = storage; InstalledPackages = packages.Select(p => new Package { Id = p.Id, Version = p.Version, IsMetaPackage = p.Module == null, IsLoaded = true, IsEnabled = true, Dependencies = p.Dependencies, }).ToArray(); }
public virtual void Build(IPackageStorage storage) { System.IO.Directory.CreateDirectory(GetDataFolder()); System.IO.Directory.Delete(GetDataFolder(), true); System.IO.Directory.CreateDirectory(GetDataFolder()); System.Threading.Thread.Sleep(500); //The files don't disappear right away it seems storage.SavePackage(this); //, System.IO.Path.Combine(GetDataFolder(), Name + ".ecp")); foreach (var s in Solutions) { s.Package = this; s.PrepareSolution(this); } string zipFileName = GetDataFolder() + ".zip"; if (System.IO.File.Exists(zipFileName)) { System.IO.File.Delete(zipFileName); } ZipFile.CreateFromDirectory(GetDataFolder(), zipFileName); System.IO.Directory.Delete(GetDataFolder(), true); }
public static void Initialize(string[] commandLine, IEnumerable <PackageStartupInfo> packages, IPackageStorage storage) { if (IsInitialized) { throw new InvalidOperationException("Bootstrapper can only be initialized once."); } IsInitialized = true; _packages = packages; _storage = storage; var currentAssembly = typeof(Bootstraper).Assembly; var versionAttribute = currentAssembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>(); Console.WriteLine(@" || || __||_||__ ( I'm running! ) ||.\_|_/.|| O =|@ ___ @|= o ||_/|||\_|| |-----|/ /| | "); Console.WriteLine(); Console.Write("Bootstrap version: "); var foregroundColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(versionAttribute.InformationalVersion); Console.ForegroundColor = foregroundColor; Console.WriteLine(); ImportModuleTypes(); ComposeModules(); InitializeModules(); }
public FallbackConfigStrategy(IEnumerable <SqlMapConfig> mapConfigs, IPackageStorage storage) { _storage = storage; }
public MultipleConfigsStorageStrategy(IEnumerable <SqlMapConfig> mapConfigs, IPackageStorage storage) { _mapConfigs = mapConfigs; _storage = storage; }
static public IPackageStorage CreateStorage(IPackageStorage storageDescription) { return(storageDescription); }
public static void Initialize(string[] commandLine, IEnumerable <PackageStartupInfo> packages, IPackageStorage storage) { if (IsInitialized) { throw new InvalidOperationException("Bootstrapper can only be initialized once."); } IsInitialized = true; var currentAssembly = typeof(Bootstraper).Assembly; var versionAttribute = currentAssembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>(); Console.WriteLine(@" || || __||_||__ ( I'm running! ) ||.\_|_/.|| O =|@ ___ @|= o ||_/|||\_|| |-----|/ /| | "); Console.WriteLine(); Console.Write("Bootstrap version: "); var foregroundColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(versionAttribute.InformationalVersion); Console.ForegroundColor = foregroundColor; Console.WriteLine(); var moduleInfos = packages.ToDictionary(p => p.Id, p => new ModuleInfo(p.Id, p.Version, p.Dependencies.Keys), StringComparer.OrdinalIgnoreCase); var assemblies = packages.Select(p => p.Module.Value).ToArray(); var compositor = new Compositor(assemblies .SelectMany(a => a.DefinedTypes .SelectMany(t => t.GetCustomAttributes <ExportAttribute>() .Select(attr => new Export { Implementation = t, Contract = attr.ContractType, SingleInstance = attr.SingleInstance, LazyCreate = attr.LazyCreate })))); compositor.AttachInstance <IModuleList>(new ModuleList(moduleInfos)); compositor.AttachInstance <IPackageService>(new PackageService(packages, storage)); Compositor.SetDefault(compositor); }
public static void Initialize(Type visualElementType, string[] commandLine, IEnumerable <PackageStartupInfo> packages, IPackageStorage storage) { if (IsInitialized) { throw new InvalidOperationException("Bootstrapper can only be initialized once."); } IsInitialized = true; var currentAssembly = typeof(Bootstraper).Assembly; var versionAttribute = currentAssembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>(); Console.WriteLine(@" || || __||_||__ ( I'm running! ) ||.\_|_/.|| O =|@ ___ @|= o ||_/|||\_|| |-----|/ /| | "); Console.WriteLine(); Console.Write("Bootstrap version: "); var foregroundColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(versionAttribute.InformationalVersion); Console.ForegroundColor = foregroundColor; Console.WriteLine(); var moduleInfos = packages.ToDictionary(p => p.Id, p => new ModuleInfo(p.Id, p.Version, p.Dependencies.Keys), StringComparer.OrdinalIgnoreCase); var assemblies = packages.Select(p => p.Module.Value).ToArray(); var builder = new ContainerBuilder(); var eager = new HashSet <Type>(); foreach (var a in assemblies) { foreach (var t in a.DefinedTypes) { foreach (var attr in t.GetCustomAttributes()) { switch (attr) { case ExportAttribute export: var b = builder.RegisterType(t).As(export.ContractType); if (export.SingleInstance) { b.SingleInstance(); } else { b.InstancePerDependency(); } if (!export.LazyCreate) { eager.Add(export.ContractType); } break; case ExportViewAttribute view: builder.RegisterType(t).Named(view.ViewId, visualElementType).InstancePerDependency(); break; case ExportSettingViewAttribute setting: builder.RegisterType(t).WithMetadata(FlexibleShell <object> .SettingCategoryName, setting.Category).As(visualElementType); break; } } } } builder.RegisterInstance(new ModuleList(moduleInfos)).As <IModuleList>(); builder.RegisterInstance(new PackageService(packages, storage)).As <IPackageService>(); var c = builder.Build(); var compositor = new AutoFacCompositor(c); foreach (var t in eager) { compositor.Resolve(t.MakeArrayType()); } }
public static void Initialize(string[] commandLine, IEnumerable <PackageStartupInfo> packages, IPackageStorage storage) { AppDomain.CurrentDomain.UnhandledException += (s, e) => { System.IO.Directory.CreateDirectory(@"log\exceptions"); System.IO.File.WriteAllText($@"log\exceptions\{DateTime.Now.ToString("yyyyMMddHHmmss")}.txt", e.ExceptionObject.ToString()); }; if (IsInitialized) { throw new InvalidOperationException("Bootstrapper can only be initialized once."); } IsInitialized = true; var currentAssembly = typeof(Bootstraper).Assembly; var versionAttribute = currentAssembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>(); Console.WriteLine(@" || || __||_||__ ( I'm running! ) ||.\_|_/.|| O =|@ ___ @|= o ||_/|||\_|| |-----|/ /| | "); Console.WriteLine(); Console.Write("Bootstrap version: "); var foregroundColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(versionAttribute.InformationalVersion); Console.ForegroundColor = foregroundColor; Console.WriteLine(); var moduleInfos = packages.ToDictionary(p => p.Id, p => new ModuleInfo(p.Id, p.Version, p.Dependencies.Keys), StringComparer.OrdinalIgnoreCase); var assemblies = packages.Select(p => p.Module.Value).ToArray(); var builder = new ContainerBuilder(); var eager = new HashSet <Type>(); var views = new Dictionary <string, Type>(); var settingViews = new List <KeyValuePair <Type, SettingCategory> >(); foreach (var a in assemblies) { foreach (var t in a.DefinedTypes) { IRegistrationBuilder <object, ConcreteReflectionActivatorData, SingleRegistrationStyle> b = null; foreach (var attr in t.GetCustomAttributes()) { switch (attr) { case ExportAttribute export: if (b == null) { b = builder.RegisterType(t); } b.As(export.ContractType); if (export.SingleInstance) { b.SingleInstance(); } else { b.InstancePerDependency(); } if (!export.LazyCreate) { eager.Add(export.ContractType); } break; case ExportViewAttribute view: builder.RegisterType(t).As(t).InstancePerDependency(); views[view.ViewId] = t; break; case ExportSettingViewAttribute setting: builder.RegisterType(t).As(t).InstancePerDependency(); settingViews.Add(new KeyValuePair <Type, SettingCategory>(t, setting.Category)); break; } } } } builder.RegisterInstance(new ModuleList(moduleInfos)).As <IModuleList>(); builder.RegisterInstance(new PackageService(packages, storage)).As <IPackageService>(); var c = builder.Build(); var compositor = new AutoFacCompositor(c, views, settingViews); foreach (var t in eager) { compositor.Resolve(t.MakeArrayType()); } }
protected override async System.Threading.Tasks.Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { NLogConfigurationService.ConfigureNLog(); NLogConfigurationService.ConfigureMiniProfilerWithDefaultLogger(); Logger logger = LogManager.GetLogger("error"); logger.Info("Extension initalizing"); EnvDTE = await GetServiceAsync(typeof(DTE)) as DTE2; Assumes.Present(EnvDTE); DteSemaphore.Release(); Storage = new PackageStorage(); var componentModel = await GetServiceAsync(typeof(SComponentModel)) as IComponentModel; Assumes.Present(componentModel); //Initialize public components, initialize instances that are dependent on any component TextManager = await GetServiceAsync(typeof(SVsTextManager)) as IVsTextManager; EditorAdaptersFactory = componentModel.GetService <IVsEditorAdaptersFactoryService>(); DocumentNavigationInstance.InjectDTE(EnvDTE); //Prepare package events var indexingQueue = new ProjectIndexingQueue(); var workspaceEvents = new WorkspaceEvents(indexingQueue); Workspace = componentModel.GetService <VisualStudioWorkspace>(); Workspace.WorkspaceChanged += (s, e) => ThreadHelper.JoinableTaskFactory.RunAsync(async() => await workspaceEvents.WorkspaceChangedAsync(s, e)); var indexingWorkflow = new IndexingWorkflow(Storage.IndexingWorkflowOptions, new ProjectItemRetreiver(EnvDTE), Storage); _envDteEvents = EnvDTE.Events as Events2; if (_envDteEvents != null) { ProjectItemEventsActions projectItemEvents = new ProjectItemEventsActions(); _envDteProjectItemsEvents = _envDteEvents.ProjectItemsEvents; _envDteProjectItemsEvents.ItemAdded += projectItemEvents.ItemAdded; _envDteProjectItemsEvents.ItemRemoved += projectItemEvents.ItemRemoved; _envDteProjectItemsEvents.ItemRenamed += projectItemEvents.ItemRenamed; EventHandlers.BuildEventsActions buildEvents = new EventHandlers.BuildEventsActions(); _buildEvents = _envDteEvents.BuildEvents; _buildEvents.OnBuildBegin += buildEvents.OnBuildBegin; } var solutionEventsActions = new VSSolutionEventsActions(indexingWorkflow); await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); await ResultWindowCommand.InitializeAsync(this); OutputWindowLogger.Init(await GetServiceAsync(typeof(SVsOutputWindow)) as SVsOutputWindow); IStatusBar = await GetServiceAsync(typeof(SVsStatusbar)) as IVsStatusbar; var svsSolution = await GetServiceAsync(typeof(SVsSolution)); Solution = svsSolution as IVsSolution; Assumes.Present(Solution); await HandleSolutionAsync(svsSolution, solutionEventsActions, indexingQueue); _solutionEventsHandler = new SolutionEventsHandler(solutionEventsActions); Solution.AdviseSolutionEvents(_solutionEventsHandler, out _solutionEventsCookie); await Goto.InitializeAsync(this); await RenameModalWindowCommand.InitializeAsync(this); await RenameCommand.InitializeAsync(this); await PrettyPrintCommand.InitializeAsync(this); }
public ConfigStorageStrategyFactory(IPackageStorage storage) { _storage = storage; }
public IndexingWorkflow(IndexingWorkflowOptions options, IProjectItemRetreiver projectItemRetreiver, IPackageStorage storage) { _options = options; _projectItemRetreiver = projectItemRetreiver; _configStrategy = new DefaultConfigStrategy(new ConfigStorageStrategyFactory(storage)); }