public override void Execute(string src, Uri uri, HttpListenerContext p, WebConfig wc, StreamWriter sw) { var bcp = new CSharpCodeProvider(); var ass = AssemblyInitializer.Init(bcp, src, sw, ini); var page = AssemblyPageResolver.Resolve(ass); page.Response = sw; uri = new Uri("http://localhost/" + Path.GetFileName(uri.LocalPath)); page.Info = new HttpInfo(Get.Create(uri), uri, wc.DataDir, p); page.IncludePage = new Action <string>(f => { new Language().Execute(File.ReadAllText(wc.DataDir + f), uri, p, wc, sw); }); page.Redirect = new Action <string>(f => { p.Response.Redirect(f); }); page.Isset = new Predicate <object>(b => { return(StandardScriptApi.isset(b)); }); page.Get = page.Info.Get; page.OnLoad(); }
private static IAssemblyLoader CreateAssemblyLoader(IServiceProvider p) { var assemblyLoader = ActivatorUtilities.CreateInstance <AssemblyLoader>(p); assemblyLoader.SubscribeOnAssemblyLoad(a => AssemblyInitializer.ConfigureAssembly(a, p)); return(assemblyLoader); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //статическая инициализация AssemblyInitializer.UseCurrentDomain(); Settings.Default.SettingsSaving += AssemblyConfigurationHelper.SettingsSaveHandler; Application.Run(new MainForm()); }
public override void Execute(string src, HttpListenerContext p, WebConfig wc) { var bcp = new Microsoft.VisualC.VSCodeProvider(); var ass = AssemblyInitializer.Init(bcp, src, new StreamWriter(p.Response.OutputStream)); var page = AssemblyPageResolver.Resolve(ass); page.Response = new StreamWriter(p.Response.OutputStream); page.Info = new HttpInfo(Get.Create(p), p.Request.Url, wc.DataDir); page.IncludePage = new Action <string>(f => { new Language().Execute(File.ReadAllText(wc.DataDir + f), p, wc); }); page.OnLoad(); }
public override dynamic Evaluate(string src, string classname, HttpListenerContext p, WebConfig wc) { var bcp = new CSharpCodeProvider(); var options = new CompilerParameters(); var ass = AssemblyInitializer.Init(bcp, src, new StreamWriter(p.Response.OutputStream), ini); foreach (var a in ass.GetTypes()) { if (a.BaseType.Name == classname) { return(ass.CreateInstance(a.FullName)); } } return(null); }
/// <summary> /// 加载资源中的程序集 /// </summary> /// <param name="assembly">调用者程序集</param> /// <param name="assemblyName">程序集名称</param> /// <returns></returns> public static Assembly LoadResourceAssembly(Assembly assembly, string assemblyName) => AssemblyInitializer.LoadResourceAssembly(assembly, assemblyName);
/// <summary> /// 程序集加载事件 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private static void AssemblyLoad(object sender, AssemblyLoadEventArgs args) => AssemblyInitializer.InitAssembly(args.LoadedAssembly, silentMode: true);
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //uint v = EgateAPI.egGetVersion(); //string d = EgateAPI.egGetVersionDescription().GetString(); //MessageBox.Show(String.Format("v{0} {1}", v, d)); //return; //string s1 = "00600215,600008,032,0001,548999******5026,1512,1000,0,1000,2706,1645,400,MC-сети-ГПБ,643,0,0,314804,002504314804,,140150148,,270614,164523,000,OK,,,,\x80\x80\x80,,,1,,"; //string s2 = ",,032,0001,,0000,,0,1000,0000,0000,399,Mastercard,643,0,0,,,,000000,,,,000,OK,,,,\x80\x80\x80,,,5,,"; //AuthResponse a1 = AuthResponse.Parse(s1); //AuthResponse a2 = AuthResponse.Parse(s2); //return; //string s = @"30 30 36 30 30 32 31 35 2C 36 30 30 30 30 38 2C 30 33 32 2C 30 30 30 30 2C 35 34 38 39 39 39 2A 2A 2A 2A 2A 2A 35 30 32 36 2C 31 35 31 32 2C 31 30 30 30 30 2C 30 2C 31 30 30 30 30 2C 31 34 30 37 2C 31 32 33 33 2C 34 33 32 2C 4D 43 2D 3F 3F 3F 3F 2D 3F 3F 3F 2C 36 34 33 2C 30 2C 30 2C 33 37 36 30 38 32 2C 30 30 32 35 30 34 33 37 36 30 38 32 2C 2C 31 34 30 31 35 30 31 34 38 2C 2C 31 34 30 37 31 34 2C 31 32 33 33 32 35 2C 30 30 30 2C 4F 4B 2C 2C 2C 2C 5C 78 38 30 5C 78 38 30 5C 78 38 30 2C 2C 2C 31 2C 2C"; //string s = "1F,26,0B,4D,43,20,F1,E5,F2,E8,20,C3,CF,C1"; //string s = "30 30 36 30 30 32 31 35 2C 36 30 30 30 30 38 2C 30 33 32 2C 30 30 30 30 2C 35 34 38 39 39 39 2A 2A 2A 2A 2A 2A 30 30 31 33 2C 31 35 31 32 2C 31 30 30 30 30 2C 30 2C 31 30 30 30 30 2C 31 37 30 37 2C 31 33 30 35 2C 34 37 32 2C 4D 61 73 74 65 72 63 61 72 64 2C 36 34 33 2C 30 2C 30 2C 33 38 35 32 39 31 2C 30 30 32 35 30 34 33 38 35 32 39 31 2C 61 30 30 30 30 30 30 30 30 34 31 30 31 30 2C 31 34 30 31 35 38 31 32 38 2C 4D 61 73 74 65 72 43 61 72 64 2C 31 37 30 37 31 34 2C 31 33 30 36 34 30 2C 30 30 30 2C 4F 4B 2C 2C 2C 2C 5C 78 38 30 5C 78 38 30 5C 78 38 31 2C 2C 2C 31 2C 2C"; //string[] sa = s.Split(' '); //byte[] ba = sa.Select(x => { long l; x.FromHex(out l); return (byte)(l & 0xFF); }).ToArray(); //s = Encoding.GetEncoding(1251).GetString(ba); //return; //проверка повторного запуска if (!ApplicationFormServices.EnsureNotRunning()) { return; } //обработчик исключений LoggedExceptionHandler xh = new LoggedExceptionHandler(); //статическая инициализация AssemblyInitializer.UseCurrentDomain(); //создаём контейнер и регистрируем классы using (IServiceContainer container = new ServiceContainer()) { //получаем агрументы GenericArguments args = new GenericArguments(); //получаем настройки Settings settings = Settings.Default; settings.SettingsSaving += AssemblyConfigurationHelper.SettingsSaveHandler; //менеджер путей GazpromPathManager pathManager = new GazpromPathManager(); container.RegisterInstance <PathManager>(pathManager); //логгер ILogger logger = container.RegisterLogger(settings.LogLevel, pathManager.LogPath); //if (!args.IsNoTrace && ((settings.Mode & GazpromMode.NoTrace) == 0)) //{ // container.RegisterTraceLogWriter(TraceHelper.GazpromTraceName, LogCategoryMap.Load(CommonHelper.GetCategoryMapFileName(pathManager, GazpromHelper.LogFileName)), GazpromHelper.GazpromTraceMessageFilter); // container.RegisterTraceLogWriter(TraceHelper.GazpromPollingTraceName, LogCategoryMap.Load(CommonHelper.GetCategoryMapFileName(pathManager, GazpromHelper.LogFileNamePolling)), GazpromHelper.PollingTraceMessageFilter); //} container.Rebuild <ILogger>(); //BankingDevice d = new BankingDevice(32); //d.Message += (s, e) => { logger.Write(e ? LogLevel.Error : LogLevel.Verbose, s); }; //d.StateChanged += (s, i) => { logger.Write(LogLevel.Debug, String.Format("{0}\r\n{1}", s, i)); }; //d.TransactionCompleted += (r, z) => { logger.Write(LogLevel.Information, String.Format("{0}\r\n{1}", r, z)); }; //try //{ // if (d.Start()) // { // int r = 1; // int a = 1000; // while (true) // { // if (d.BeginTransaction(r++, a)) // { // while (d.State != EquipmentState.CardTaken) // System.Threading.Thread.Sleep(500); // d.EndTransaction(); // a += 100; // } // if (MessageBox.Show("Следующий платеж?", "Debug", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) // break; // } // } //} //catch (Exception e) //{ // logger.Write(e); //} //finally //{ // d.Stop(); //} //return; //создаём список предупреждений для записи в лог после запуска List <ILogMessage> warnings = new List <ILogMessage>(); //обработчик исключений и окно отображения ошибок (до создания любого окна) container.RegisterInstance <IApplicationReportProvider>(new ApplicationReportProvider(true)); container.RegisterErrorServices(xh); container.RegisterErrorWindow(); //значок панели задач container.RegisterInstance <TrayService>(new GazpromTray()); //заставка (она же окно "О программе") container.RegisterAboutWindow(!args.IsNoSplash, new GazpromAboutForm()); //сеть container.RegisterInstance <INetworkProtocol>(new SerialPortProtocol()); //сервер container.RegisterInstance <IApplication>(new Gazprom(settings.Mode)); container.RegisterInstance <Form>(new MainForm()); //инъектируем зависимости container.Rebuild(); //write warnings foreach (LogMessage m in warnings) { logger.Write(m); } //запускаем приложение с помощью зарегистрированных в контейнере классов container.Run(false); } }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //проверка повторного запуска if (!ApplicationFormServices.EnsureNotRunning()) { return; } //обработчик исключений LoggedExceptionHandler xh = new LoggedExceptionHandler(); //статическая инициализация AssemblyInitializer.UseCurrentDomain(); //создаём контейнер и регистрируем классы using (IServiceContainer container = new ServiceContainer()) { //получаем агрументы GenericArguments args = new GenericArguments(); //получаем настройки Settings settings = Settings.Default; settings.SettingsSaving += AssemblyConfigurationHelper.SettingsSaveHandler; //менеджер путей SberBankPathManager pathManager = new SberBankPathManager(); container.RegisterInstance <PathManager>(pathManager); //логгер ILogger logger = container.RegisterLogger(settings.LogLevel, pathManager.LogPath); container.Rebuild <ILogger>(); //создаём список предупреждений для записи в лог после запуска var warnings = new List <ILogMessage>(); //обработчик исключений и окно отображения ошибок (до создания любого окна) container.RegisterInstance <IApplicationReportProvider>(new ApplicationReportProvider(true)); container.RegisterErrorServices(xh); container.RegisterErrorWindow(); //значок панели задач container.RegisterInstance <TrayService>(new SberBankTray()); //заставка (она же окно "О программе") container.RegisterAboutWindow(!args.IsNoSplash, new SberBankAboutForm()); //сеть container.RegisterInstance <INetworkProtocol>(new SerialPortProtocol()); //сервер container.RegisterInstance <IApplication>(new SberBank(settings.Mode)); container.RegisterInstance <Form>(new MainForm()); //инъектируем зависимости container.Rebuild(); //write warnings foreach (LogMessage m in warnings) { logger.Write(m); } //запускаем приложение с помощью зарегистрированных в контейнере классов container.Run(false); } }
private static FamilyTreeContext GetFamilyTreeContext() { return(new FamilyTreeContext(AssemblyInitializer.GetFamilyTreeContextInMemoryOptions())); }
static void Main(string[] args) { string devToken = ConfigurationManager.AppSettings["applicationIdentifier"]; var resolver = Assembly.LoadWithPartialName("Sage.Peachtree.API.Resolver"); var api = Assembly.LoadWithPartialName("Sage.Peachtree.API"); Console.WriteLine("Sage 50 ShipGear write-back performance test"); Console.WriteLine("Enter server name:"); string serverName = Console.ReadLine(); AssemblyInitializer.Initialize(); var session = new PeachtreeSession(); try { try { session.Begin(devToken); } catch (InvalidApplicationIdentifierException e) { Message("Put a valid application identifier into the app configuration file."); } var companyList = session.CompanyList(); foreach (var item in companyList) { Console.WriteLine(string.Format("{0} {1}", item.CompanyName, item.Path)); } Console.WriteLine("Enter company name. The first will be selected if more than one with the same name."); string companyName = Console.ReadLine(); CompanyIdentifier company = null; foreach (var item in companyList) { if (item.CompanyName == companyName) { company = item; break; } } if (company == null) { Message("No company was selected - quit."); } var authResult = session.RequestAccess(company); if (authResult == AuthorizationResult.Granted) { Company comp = null; try { comp = session.Open(company); } catch (Sage.Peachtree.API.Exceptions.AuthorizationException e) { Message("Reopen the company in Sage 50 to enable access to this application."); } try { SalesInvoiceList list = comp.Factories.SalesInvoiceFactory.List(); Console.WriteLine("Enter invoice number:"); string documentKey = Console.ReadLine(); FilterExpression filter = FilterExpression.Equal(FilterExpression.Property("SalesInvoice.ReferenceNumber"), FilterExpression.Constant(documentKey)); var modifiers = LoadModifiers.Create(); modifiers.Filters = filter; list.Load(modifiers); Console.WriteLine("Invoices selected: {0}", list.Count()); var enumerator = list.GetEnumerator(); if (enumerator == null) { Message("GetEnumerator returned NULL"); } Console.WriteLine("Moving to the next record"); enumerator.MoveNext(); enumerator.Current.CustomerNote = "Test Customer Note"; enumerator.Current.InternalNote = "Test Internal Note"; Console.WriteLine("Editing the freight (Y[y]/N[n], Y if empty)?"); string strFreightEdit = Console.ReadLine(); if (string.IsNullOrWhiteSpace(strFreightEdit)) { strFreightEdit = "Y"; } bool freightEdit = string.Equals(strFreightEdit, "Y", StringComparison.CurrentCultureIgnoreCase); Console.WriteLine("Editing freight: {0}", freightEdit.ToString()); if (freightEdit) { enumerator.Current.FreightAmount = 199.99M; } Stopwatch w = Stopwatch.StartNew(); Console.WriteLine("Starting performance counter"); enumerator.Current.Save(); w.Stop(); Message(string.Format("Elapsed msec: {0}", w.Elapsed.TotalMilliseconds), ConsoleColor.Green, false); Message("Completed", ConsoleColor.Green, true); } finally { comp.Close(); } } else if (authResult == AuthorizationResult.Pending) { Message("Authorization result: Pending - cannot continue. Reopen the company in Sage 50 to enable access to this application."); } else { Message(string.Format("Authorization result: {0} - cannot continue", authResult.ToString())); } } finally { session.End(); } }