/// <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));
        }
Exemple #2
0
        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...");
        }
Exemple #3
0
        /// <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);
     }
 }
Exemple #5
0
 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);
 }
Exemple #8
0
        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);
        }
Exemple #9
0
        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");
        }
Exemple #11
0
 internal static void Create(Techs techs)
 {
     Instance = Instance ?? new TechTree();
     Logger.Info("Created new TechTree");
 }