/// <summary> /// 获得一个Web代理 /// </summary> /// <returns></returns> public static WebProxy GetWebProxy() { L1: if (_webProxyIPList == null || _webProxyIPList.Count == 0) { Log.Info("代理列表为空,无法使用代理."); return(null); } var cProxyIndex = _sysRandom.Next(0, _webProxyIPList.Count); var cProxyNode = _webProxyIPList[cProxyIndex]; if (cProxyNode.CheckExpired) { cProxyNode.CanUse = CheckWebProxy(cProxyNode); } if (!cProxyNode.CanUse) { _webProxyIPList.Remove(cProxyNode); goto L1; } return(new WebProxy(cProxyNode.IP, cProxyNode.Port)); }
public static void PrePatch(HarmonyInstance _) { // this is weird and should not be done in normal mods OptionsManager.MergeOptions(OptionsProvider); OptionsManager.SaveOptions(OptionsProvider); if (Options.EnableDeveloperConsole) { UnityEngine.Debug.LogError("Invoking error to show the developer console"); } Logger.Info("Using options: {0}", Options.ToString()); Logger.Info("Hooked into harmony, watching for assemblies to be patched in..."); }
/// <summary> /// Inspects the <paramref name="instance"/> for all properties that are marked with the <see cref="System.Composition.ImportAttribute"/> or <see cref="System.ComponentModel.Composition.ImportAttribute"/> attributes and resolves them. /// <para/> /// Use <see cref="IExportResolver.ComposeParts(object)"/> to resolve an objects dependencies when it cannot be exported into MEF (EG: Controls, IDE integration points). /// </summary> public virtual void ComposeParts(object instance) { if (instance == null) { throw new ArgumentNullException(nameof(instance)); } using (Profiler.Profile()) { var dependencies = DependencyHelper.FindDependencies(instance); foreach (var dep in dependencies) { try { var value = GetExportedValue(dep.PropertyType); dep.SetValue(instance, value); } catch (Exception ex) { log?.Exception(ex); log?.Info("Failed to set " + dep.Name + " onto " + instance.GetType() + " (" + dep.PropertyType + ")."); Debugger.Break(); } } } }
private void ReportStatusInfo(string info) { if ((_Logger != null) && (_Logger.IsInfoEnabled)) { _Logger.Info(info); } }
private static void Load() { foreach (var(assembly, (mod, modType)) in mods) { Logger.Info("Loading {0} v{1} ({2})", mod.Name, mod.Version, assembly.FullName); mod.Load(); } }
public SVNWrapper(Tiveria.Common.Logging.ILogManager logManager) { _Logger = logManager.GetLogger("SVNWrapper"); _Logger.Info("Creating instance"); _Username = ""; _Password = ""; _RepositoryRevision = -1; _SvnClient = new SvnClient(); _SvnClient.Conflict += new EventHandler <SvnConflictEventArgs>(ConflictHandler); }
public bool RefreshWorkingCopy() { _Logger.Info("Starting to refresh the working copy folder"); if (!IsSvnControlled(WorkingCopyPath)) { _Logger.Info("No working copy folder or currently not under SVN control. Checking out content"); SvnCheckOutArgs checkoutArgs = new SvnCheckOutArgs(); checkoutArgs.Depth = SvnDepth.Infinity; checkoutArgs.Notify += new EventHandler <SvnNotifyEventArgs>(CheckoutNotificationHandler); try { SvnUpdateResult result; bool returncode = _SvnClient.CheckOut(SvnUriTarget.FromString(RepositoryUri), WorkingCopyPath, out result); if (returncode) { _RepositoryRevision = (int)result.Revision; _Logger.Info(String.Format("Sucessfully checked out revision {0} from {1} to {2}", _RepositoryRevision, RepositoryUri, WorkingCopyPath)); } } catch (Exception ex) { _Logger.Fatal(String.Format("Checkout from {0} to {1} failed! - {2}", RepositoryUri, WorkingCopyPath, ex)); return(false); } } else { _Logger.Info("Updating working copy folder"); SvnUpdateArgs updateArgs = new SvnUpdateArgs(); updateArgs.Depth = SvnDepth.Infinity; updateArgs.Notify += new EventHandler <SvnNotifyEventArgs>(CheckoutNotificationHandler); updateArgs.Conflict += new EventHandler <SvnConflictEventArgs>(ConflictHandler); try { SvnUpdateResult result; bool returncode = _SvnClient.Update(WorkingCopyPath, updateArgs, out result); if (!returncode || (result.Revision < 0)) { _Logger.Error(String.Format("Updating from {0} to {1} failed!", RepositoryUri, WorkingCopyPath)); return(false); } _RepositoryRevision = (int)result.Revision; _Logger.Info(String.Format("Sucessfully updated to revision {0}", _RepositoryRevision)); } catch (Exception ex) { _Logger.Fatal(String.Format("Checkout from {0} to {1} failed! - {2}", RepositoryUri, WorkingCopyPath, ex)); return(false); } } return(true); }
internal static void RegisterSubstances() { Logger.Info("Registering substances..."); var simHashesLength = Enum.GetValues(typeof(SimHashes)).Length; foreach (var element in loadedElements) { var substance = CreateSubstance(element); if (!substanceList.ContainsKey(substance.elementID)) { var id = element.elementId; var hash = substance.elementID; substanceList.Add(substance.elementID, substance); simHashTable.Add(hash, id); simHashReverseTable.Add(id, hash); } } Logger.Info("Successfully registered {0} substance(s) ({1} total)", loadedElements.Count, loadedElements.Count + simHashesLength); }
public static void PrettyLog(this ExecResult self, Logging.ILogger logger, string prefix = "", string suffix = "") { var content = prefix + self.PrettyPrint() + suffix; switch (self.Status) { case ExecStatus.Success: logger.Info(content); break; case ExecStatus.Warn: logger.Warn(content); break; case ExecStatus.Error: logger.Error(content); break; case ExecStatus.Fatal: default: logger.Fatal(content); break; } }
private void Initialize(System.Web.HttpContext ctx) { m_Host = ctx.Request.Url.Host; var contextBase = new System.Web.HttpContextWrapper(ctx); var container = new UnityContainer(); container.AddNewExtension<Interception>(); // Enregistrement des repositories container.RegisterType<Repositories.ICouponRepository, Repositories.NullCouponRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.ICartRepository, Repositories.HttpContextCartRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.IRegistrationRepository, Repositories.SessionRegistrationRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.ILocalizationRepository, Repositories.VoidLocalizationRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.ICommentRepository, Repositories.VoidCommentRepository>(new ContainerControlledLifetimeManager()); // Enregistrement des services container.RegisterType<Services.ICacheService, Services.SimpleCacheService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ICartService, Services.CartService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IScheduledTaskService, Services.ScheduledTaskService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IEmailerService, Services.EmailerService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IIncentiveService, Services.IncentiveService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ILocalizationService, Services.VoidLocalizationService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ISearchOptimizationService, Services.VoidSearchOptimizationService>(new ContainerControlledLifetimeManager()); var pluginEnumeratorInjectionMembers = new InjectionMember[] { new InjectionConstructor( ctx.Server.MapPath("/plugins.config") , ctx.Server.MapPath("/bin") ) }; container.RegisterType<Extensibility.IPluginEnumerator, Extensibility.XmlConfigPluginEnumerator>(new ContainerControlledLifetimeManager(), pluginEnumeratorInjectionMembers); container.RegisterType<Extensibility.IPluginLoaderService, Extensibility.PluginLoaderService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IEventSubscriptionService, Services.EventSubscriptionService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IEventPublisher, Services.EventPublisher>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ISettingsService, Services.SettingsService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ISalesService, Services.SalesService>(new ContainerControlledLifetimeManager()); // Configuration des routes container.RegisterType<Services.IRoutesRegistrationService, ERPStoreRoutes>(new ContainerControlledLifetimeManager()); // Enregistrement des modes de reglement par defaut container.RegisterType<Services.IPaymentService, Services.PaymentByCheckService>("check",new ContainerControlledLifetimeManager()); container.RegisterType<Services.IPaymentService, Services.PaymentByWireTransferService>("wiretransfer",new ContainerControlledLifetimeManager()); // Global Event Consumer container.RegisterType<Services.UserLoggedEventMessage>("userLoggedEventMessage", new ContainerControlledLifetimeManager()); // Logger par defaut container.RegisterType<Logging.ILogger, Logging.ConsoleLogger>(new PerThreadLifetimeManager()); // Chargement des services et overriding a partir du fichier // de configuration unity.config var map = new ExeConfigurationFileMap(); var unityConfigFileName = ERPStore.Configuration.ConfigurationSettings.AppSettings["unityConfigFileName"] ?? "unity.config"; map.ExeConfigFilename = System.IO.Path.Combine(System.Web.HttpContext.Current.Server.MapPath(@"\"), unityConfigFileName); var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); var section = (UnityConfigurationSection)config.GetSection("unity"); if (section == null) { throw new Exception(string.Format("unity section in {0} does not exists", unityConfigFileName)); } section.Configure(container); RegisterGlobalFilters(GlobalFilters.Filters); container.RegisterInstance<IControllerFactory>(System.Web.Mvc.ControllerBuilder.Current.GetControllerFactory()); container.RegisterType<IControllerActivator, UnityControllerActivator>(); container.RegisterType<IViewPageActivator, UnityViewPageActivator>(); var filterProvider = new UnityFilterProvider(container); container.RegisterInstance<IFilterProvider>("attributes", filterProvider); container.RegisterType<ModelMetadataProvider, DataAnnotationsModelMetadataProvider>(); var resolver = new UnityDependencyResolver(container); System.Web.Mvc.DependencyResolver.SetResolver(resolver); m_Logger = container.Resolve<Logging.ILogger>(); // Resolution et chargement des paramètres de configuration du site m_Logger.Info("Loading site configuration"); var settingsService = container.Resolve<Services.ISettingsService>(); m_WebSiteSettings = settingsService.GetWebSiteSettings(m_Host); m_WebSiteSettings.PhysicalPath = ctx.Server.MapPath("/"); var injectionMembers = new InjectionMember[] { new InjectionConstructor(m_WebSiteSettings.CryptoKey, m_WebSiteSettings.CryptoIV) , }; container.RegisterType<Services.CryptoService>(new ContainerControlledLifetimeManager(), injectionMembers); m_Logger.Info("Loading plugins"); // Chargement des plugins var pluginLoaderService = container.Resolve<Extensibility.IPluginLoaderService>(); var pluginEnumeratorService = container.Resolve<Extensibility.IPluginEnumerator>(); var plugins = pluginEnumeratorService.EnumeratePlugins(); pluginLoaderService.Load(plugins, (System.Web.HttpContextBase)contextBase, m_WebSiteSettings); m_Logger.Info("Plugins loaded"); // Configuration des routes var erpStoreRoutes = container.Resolve<Services.IRoutesRegistrationService>(); erpStoreRoutes.Register(); // Enregistrement des routes par defaut RouteTable.Routes.MapERPStoreRoute( "Admin" , "admin/{action}/{id}" , new { controller = "Admin", action = "Index", id = string.Empty } ); RouteTable.Routes.MapERPStoreRoute( "CatchAll" , "{*catchall}" , new { controller = "Home", action = "CatchAll" } ); // Ne pas supprimer cette route RouteTable.Routes.MapERPStoreRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = string.Empty } ); var eventPublisherService = container.Resolve<Services.IEventPublisher>(); eventPublisherService.Publish(new Models.Events.RegisteredRoutesEvent()); m_Logger.Info("Routes configured"); // Demarrage du planificateur de taches var taskService = container.Resolve<Services.IScheduledTaskService>(); taskService.Start(); m_Logger.Info("Scheduler started"); }
internal static void Create(Techs techs) { Instance = Instance ?? new TechTree(); Logger.Info("Created new TechTree"); }