public static void WriteUninstall(ModuleProcessor moduleProcessor, string path) { Console.WriteLine("Generating {0}", FrameworkOutputMode.Uninstall); var commands = GetUninstallCommands(moduleProcessor); var output = ReplaceParameters(commands, moduleProcessor); WriteToFile(output, path, FrameworkOutputMode.Uninstall); }
public AccountService(BPFinanceContext context, IOptions <AppSettings> appSettingsAccessor, IOptions <AppParams> appParamsAccessor) { _context = context; var repository = new BPFinanceRepository(_context, appParamsAccessor.Value.EditUserId); _businessUnitIds = appParamsAccessor.Value.BusinessUnitIds; var basketBusinessUnitIdProvider = new BasketBusinessUnitIdProvider(_context); _paymentInTimeDiscountProvider = new PaymentInTimeDiscountProvider(appParamsAccessor.Value.BusinessUnitSettings); _clientAccountProcessor = new ClientAccountProcessor( _context, repository); _accountSettingsProcessor = new AccountSettingsProcessor( _context, repository); _orderProcessor = new OrderProcesor( _context, repository, appParamsAccessor.Value.BasketOrderDescription, appParamsAccessor.Value.ManagerId, basketBusinessUnitIdProvider); var rubricProcessor = new RubricProcessor( _context, repository); var graphicProcessor = new GraphicProcessor( _context, repository); _orderImProcessor = new OrderImProcessor( _context, repository); var stringProcessor = new StringProcessor( _context, repository); var moduleProcessor = new ModuleProcessor( _context, repository); var moduleMaketProcessor = new ModuleMaketProcessor( appSettingsAccessor.Value.OrderImFolderTemplate, appSettingsAccessor.Value.DatabaseName); _positionImProcessor = new PositionImProcessor( _context, repository, _orderImProcessor, stringProcessor, moduleProcessor, moduleMaketProcessor); _orderPositionProcessor = new OrderPositionProcessor( _context, repository, rubricProcessor, graphicProcessor, _positionImProcessor, appParamsAccessor.Value.BasketOrderDescription); }
public OrderPositionService(BPFinanceContext context, IOptions <AppSettings> appSettingsAccessor, IOptions <AppParams> appParamsAccessor) { _context = context; var repository = new BPFinanceRepository(_context, appParamsAccessor.Value.EditUserId); var orderImFolderTemplate = appSettingsAccessor.Value.OrderImFolderTemplate; var dbName = appSettingsAccessor.Value.DatabaseName; var basketBusinessUnitIdProvider = new BasketBusinessUnitIdProvider(_context); _orderPositionDataProcessor = new OrderPositionDataProcessor( _context, orderImFolderTemplate, dbName); _clientProcessor = new ClientProcessor( _context); _orderProcessor = new OrderProcesor( _context, repository, appParamsAccessor.Value.BasketOrderDescription, appParamsAccessor.Value.ManagerId, basketBusinessUnitIdProvider); var rubricProcessor = new RubricProcessor( _context, repository); var graphicProcessor = new GraphicProcessor( _context, repository); var orderImProcessor = new OrderImProcessor( _context, repository); var stringProcessor = new StringProcessor( _context, repository); var moduleProcessor = new ModuleProcessor( _context, repository); var moduleMaketProcessor = new ModuleMaketProcessor( appSettingsAccessor.Value.OrderImFolderTemplate, appSettingsAccessor.Value.DatabaseName); var positionImProcessor = new PositionImProcessor( _context, repository, orderImProcessor, stringProcessor, moduleProcessor, moduleMaketProcessor); _orderPositionProcessor = new OrderPositionProcessor( _context, repository, rubricProcessor, graphicProcessor, positionImProcessor, appParamsAccessor.Value.BasketOrderDescription); }
/// <summary> /// /// </summary> /// <param name="context"> /// The <see cref="ModuleProcessor"/> context to get <see cref="ImpWiz.Import"/> types and methods. /// </param> /// <param name="libLoaderTypeDef"> /// The library loader<see cref="TypeDefinition"/> to use for library and symbol resolving. /// <c>null</c> for fallback to the default <see cref="LibLoader"/> /// </param> /// <param name="loaderCookie">The <see cref="LoaderCookie"/>.</param> public ImportLoaderCecil(ModuleProcessor context, TypeDefinition libLoaderTypeDef = null, string loaderCookie = null) { LoaderCookie = loaderCookie; libLoaderTypeDef ??= context.AssemblyContext.ImportAssemblyLibLoader; var methodInfo = libLoaderTypeDef.Methods.First(x => x.Name == "GetInstance" && x.IsStatic && x.IsPublic && x.Parameters.Count == 1 && x.Parameters[0].ParameterType.FullName == "System.String"); GetInstanceMethod = methodInfo; LibraryLoaderTypeDefinition = libLoaderTypeDef; }
static void Main(string[] args) { var searchPath = args[0]; Console.WriteLine("CoreLayerADC Framework Compiler"); Console.WriteLine("-------------------------------"); Console.WriteLine("Search path: {0}", searchPath); try { _moduleProcessor = ModuleProcessor.GetModuleProcessor(ModuleLoader.LoadModulesFromDirectory(searchPath)); FileOutput.WriteAll(_moduleProcessor, searchPath); } catch (ArgumentException ex) { Console.WriteLine("Terminating application: {0}", ex.Message); } }
private static IEnumerable <string> GetInstallCommands(ModuleProcessor moduleProcessor) { var commands = new List <string>(); var tempDict = new Dictionary <string, string>(); // Load commands in Temporary dict foreach (var moduleName in moduleProcessor.InstallModuleNames) { var module = moduleProcessor.Modules[moduleName]; foreach (var element in module.Sections.SelectMany(section => section.Elements)) { tempDict.Add(element.Name, element.Expressions.Install); } // Fill commands based on order commands.AddRange(GetModuleOutputPrefix(moduleName)); commands.AddRange(moduleProcessor.SortedModuleExpressions[moduleName].Select(name => tempDict[name])); commands.AddRange(GetModuleOutputSuffix(moduleName)); } return(commands); }
public FileProcessor(ILogger logger, ModuleProcessor moduleProcessor, Configuration configuration) { ModuleProcessor = moduleProcessor ?? throw new ArgumentNullException(nameof(moduleProcessor)); Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
private Task <string> ProcessAssembly(ModuleDefinition module) { return(ModuleProcessor.ReadModule(module)); }
private IList<ModuleProcessor> GatherModulesNeedingProcessing() { var processors = new List<ModuleProcessor>(); if (!IsModuleProcessable(ModuleDefinition)) { return processors; } var moduleReaders = new List<ModuleReader>(); var stilettoReferences = StilettoReferences.Create(AssemblyResolver); var references = new References(ModuleDefinition, stilettoReferences); var copyLocalAssemblies = new Dictionary<string, bool>(StringComparer.Ordinal); var localDebugFiles = new Queue<string>(); foreach (var copyLocal in ReferenceCopyLocalPaths) { if (copyLocal.EndsWith(".pdb") || copyLocal.EndsWith(".mdb")) { // We'll come back to the debug files after we have a complete // list of local assemblies. localDebugFiles.Enqueue(copyLocal); continue; } if (copyLocal.EndsWith(".exe") || copyLocal.EndsWith(".dll")) { copyLocalAssemblies[copyLocal] = false; } } // Check which assemblies have debug symbols and, consequently, // for which assemblies we will attempt to read and write such symbols. while (localDebugFiles.Count > 0) { var pdb = localDebugFiles.Dequeue(); var rawPath = Path.Combine(Path.GetDirectoryName(pdb), Path.GetFileNameWithoutExtension(pdb)); var dll = rawPath + ".dll"; var exe = rawPath + ".exe"; if (copyLocalAssemblies.ContainsKey(dll)) { copyLocalAssemblies[dll] = true; } if (copyLocalAssemblies.ContainsKey(exe)) { copyLocalAssemblies[exe] = true; } } foreach (var pathAndHasPdb in copyLocalAssemblies) { var path = pathAndHasPdb.Key; var hasPdb = pathAndHasPdb.Value; var assembly = AssemblyDefinition.ReadAssembly(path, new ReaderParameters { ReadSymbols = hasPdb }); // TODO: Figure out how to differentiate between third-party libs and client code. if (assembly.Name.HasPublicKey) { LogWarning("Assembly " + assembly.Name + " is strong-named and will not be processed."); continue; } dependencies[path] = Tuple.Create(assembly, hasPdb); foreach (var module in assembly.Modules) { if (!IsModuleProcessable(module)) { continue; } if (module.IsMain) { var importedCtor = module.Import(references.InternalsVisibleToAttribute); var internalsVisibleTo = new CustomAttribute(importedCtor); internalsVisibleTo.ConstructorArguments.Add(new CustomAttributeArgument(module.TypeSystem.String, ModuleDefinition.Assembly.Name.Name)); module.Assembly.CustomAttributes.Add(internalsVisibleTo); } moduleReaders.Add(ModuleReader.Read(module)); AddModuleToAssemblyDictionary(module, null); } } AddModuleToAssemblyDictionary(ModuleDefinition, null); var mainModuleProcessor = new ModuleProcessor( errorReporter, ModuleDefinition, references, moduleReaders); processors.Add(mainModuleProcessor); return processors; }
private void AddModuleToAssemblyDictionary(ModuleDefinition module, ModuleProcessor moduleProcessor) { modulesByAssembly[GetModuleKey(module)] = moduleProcessor; }
private static IEnumerable <string> ReplaceParameters(IEnumerable <string> commands, ModuleProcessor moduleProcessor) { Console.WriteLine("\tReplacing parameters"); var output = commands; output = ReplacePlaceholders(output, moduleProcessor.Placeholders); output = ReplaceVersion(output, moduleProcessor.Version); return(output); }
public static void WriteAll(ModuleProcessor moduleProcessor, string path) { WriteInstall(moduleProcessor, path); WriteUninstall(moduleProcessor, path); }