示例#1
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void OpenGenericDependenciesTest()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register(typeof(IGenericService <>), typeof(GenericServiceImpl <>), LifeTime.Instance);
            dependencies.Register <IGenericRepository, GenericRepositoryImpl>(LifeTime.Instance);

            DependencyProvider provider = new DependencyProvider(dependencies);
            GenericServiceImpl <IGenericRepository> service = (GenericServiceImpl <IGenericRepository>)provider.Resolve <IGenericService <IGenericRepository> >();

            Assert.AreEqual(service.GetType(), typeof(GenericServiceImpl <IGenericRepository>));
            Assert.IsNotNull(service.constructorCheck);
        }
示例#2
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void GenericDependenciesTest()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register <IRepository, RepositoryImpl>(LifeTime.Instance);
            dependencies.Register <IService <IRepository>, ServiceImpl <IRepository> >(LifeTime.Instance);

            DependencyProvider provider = new DependencyProvider(dependencies);
            var service = (ServiceImpl <IRepository>)provider.Resolve <IService <IRepository> >();

            Assert.IsNotNull(service.checkConstructor);
            Assert.AreEqual(service.checkConstructor.GetType(), typeof(RepositoryImpl));
            Assert.AreEqual(service.GetType(), typeof(ServiceImpl <IRepository>));
        }
示例#3
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void ManyImplementationTest()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register <IService, ServiceImpl1>(LifeTime.Instance);
            dependencies.Register <IService, ServiceImpl2>(LifeTime.Instance);

            DependencyProvider provider = new DependencyProvider(dependencies);
            var services = provider.Resolve <IEnumerable <IService> >() as Array;

            Assert.AreEqual(services.Length, 2);
            Assert.AreEqual(services.GetValue(0).GetType(), typeof(ServiceImpl1));
            Assert.AreEqual(services.GetValue(1).GetType(), typeof(ServiceImpl2));
        }
示例#4
0
 /// <summary>
 /// 启用任务调度
 /// 启动调度时会把任务表中状态为“执行中”的任务加入到任务调度队列中
 /// </summary>
 public static void StartScheduler()
 {
     try
     {
         DependencyConfig.Register();
         using (var timeScope = DependencyConfig.Container.BeginLifetimeScope())
         {
             _jobTaskRepository = timeScope.Resolve <IJobTaskRepository>();
             if (TaskManager.scheduler != null)
             {
                 //获取所有执行中的任务
                 List <JobTask> listTask = _jobTaskRepository.GetList();
                 if (listTask != null && listTask.Count > 0)
                 {
                     foreach (JobTask taskUtil in listTask)
                     {
                         try
                         {
                             ScheduleJob(taskUtil);
                         }
                         catch (Exception e)
                         {
                             LogHelper.WriteLog(string.Format("任务“{0}”启动失败!", taskUtil.TaskName), e);
                         }
                     }
                 }
                 LogHelper.WriteLog("任务调度启动成功!");
             }
         }
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog("任务调度启动失败!", ex);
     }
 }
示例#5
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void CycleDependecies()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register <IHuman, Woman>(LifeTime.Instance);
            dependencies.Register <IAnimal, Cat>(LifeTime.Instance);

            DependencyProvider provider = new DependencyProvider(dependencies);
            Woman service = (Woman)provider.Resolve <IHuman>();

            //IHuman->IAnimal (NOT NULL)
            Assert.IsNotNull(service.getValue());

            //IHuman->IAnimal->IHuman (NULL)
            Assert.IsNull(service.myCat.getValue());
        }
示例#6
0
        private void btn_Stock_Click(object sender, RoutedEventArgs e)
        {
            DependencyConfig.Register();
            var job = new StockJob();

            job.ExcuteTask();
        }
示例#7
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void ProviderExceptionTests()
        {
            DependencyConfig dependencies = new DependencyConfig();

            //Не добавлена зависимость
            DependencyProvider   provider = new DependencyProvider(dependencies);
            KeyNotFoundException ex       = Assert.Throws <KeyNotFoundException>(() => provider.Resolve <IService>());

            //Не добавлена зависимость,случай множества имплементаций
            KeyNotFoundException ex2 = Assert.Throws <KeyNotFoundException>(() => provider.Resolve <IEnumerable <IService> >());

            //Не добавлена зависимость, Generic

            //dependencies.Register<IRepository, RepositoryImpl>(LifeTime.Instance);
            dependencies.Register <IService <IRepository>, ServiceImpl <IRepository> >(LifeTime.Instance);

            KeyNotFoundException ex3 = Assert.Throws <KeyNotFoundException>(() => provider.Resolve <IService <IRepository> >());

            //Не добавлена зависимость,случай OpenGeneric

            //dependencies.Register(typeof(IGenericService<>), typeof(GenericServiceImpl<>), LifeTime.Instance);
            //dependencies.Register<IGenericRepository, GenericRepositoryImpl>(LifeTime.Instance);

            KeyNotFoundException ex4 = Assert.Throws <KeyNotFoundException>(() => provider.Resolve <IGenericService <IGenericRepository> >());
        }
示例#8
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     DependencyConfig.Register();
 }
示例#9
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            DependencyConfig.Register();

            Database.SetInitializer(new WebStoreContextInitializer());
        }
示例#10
0
        protected override void RegisterApplicationComponents(IApplicationBuilder app, IKernel kernel)
        {
            app.UseMvc(routes =>
            {
                routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
            });

            DependencyConfig.Register(kernel);
            DependencyResolver.SetResolver(kernel);
        }
示例#11
0
        /// <summary>
        /// Configures services including dependencies.
        /// </summary>
        /// <param name="services"><see cref="IServiceCollection"/> instance.</param>
        /// <remarks>This method gets called by the runtime. Use this method to add services to the container.</remarks>
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();

            // Add dependencies.
            var container = DependencyConfig.Register(services, this.HostingEnvironment, this.Configuration);

            return(container.Resolve <IServiceProvider>());
        }
示例#12
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            DependencyConfig.Register();
            Database.SetInitializer(new WebStoreDbInitializer());
        }
示例#13
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void SimpleDependencyTest()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register <IService, ServiceImpl1>(LifeTime.Singleton);

            DependencyProvider provider = new DependencyProvider(dependencies);
            var service1 = provider.Resolve <IService>();

            Assert.IsNotNull(service1);
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            Database.SetInitializer(new DropCreateDatabaseAlways <FacebookContext>());
            DependencyConfig.Register();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
            AutoMapperConfig.Configure();
        }
示例#15
0
        protected override void OnStart(string[] args)
        {
            IoC.InitializeWith(new FactoryDependencyManager());

            EngineContext.Initialize(false);
            DependencyConfig.Register();

            SAPInterfaceTimer.Elapsed  += SapInterface_Elapsed;
            SAPInterfaceTimer.AutoReset = false;
            SAPInterfaceTimer.Interval  = SettingService.GetSettingValueInteger("SAPInterface.TimerDuration");
            SAPInterfaceTimer.Enabled   = true;
        }
示例#16
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            WebApiConfig.Register(config);
            SwaggerConfig.Register(config);
            DependencyConfig.Register(config);

            AuthZeroConfig.ConfigureAuthZero(app);

            app.UseCors(CorsOptions.AllowAll);
            app.UseWebApi(config);
        }
示例#17
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void ConfigExceptionTests()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register <IRepository, RepositoryImpl>(LifeTime.Instance);

            ArgumentException ex = Assert.Throws <ArgumentException>(() => dependencies.Register <IRepository, RepositoryImpl>(LifeTime.Instance));

            Assert.AreEqual("Such dependency is already registered", ex.Message);

            ArgumentException ex2 = Assert.Throws <ArgumentException>(() => dependencies.Register(typeof(IRepository), typeof(ServiceImpl1), LifeTime.Instance));

            Assert.AreEqual("TImplementation doesn't implement TDependency interface", ex2.Message);

            ArgumentException ex3 = Assert.Throws <ArgumentException>(() => dependencies.Register(typeof(IService), typeof(AbstractClass), LifeTime.Instance));

            Assert.AreEqual("TImplementation can't be an abstract class", ex3.Message);

            ArgumentException ex4 = Assert.Throws <ArgumentException>(() => dependencies.Register(typeof(IService), typeof(NonConstructor), LifeTime.Instance));

            Assert.AreEqual("TImplementation doesn't have any public constructors", ex4.Message);
        }
示例#18
0
        public WebServerFactory(int port)
        {
            _baseAddress = "http://localhost:" + port;

            var config = new HttpSelfHostConfiguration(_baseAddress);

            JsonConfig.Register(config);
            RouteConfig.Register(config);
            DependencyConfig.Register(config);
            DbConfig.Migrate();

            _server = new HttpSelfHostServer(config);
        }
示例#19
0
 /// <summary>
 /// Job完成时调用
 /// </summary>
 /// <param name="trigger">触发器</param>
 /// <param name="context">上下文</param>
 /// <param name="triggerInstructionCode"></param>
 public void TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode)
 {
     DependencyConfig.Register();
     using (var timeScope = DependencyConfig.Container.BeginLifetimeScope())
     {
         var jobTaskRepository = timeScope.Resolve <IJobTaskRepository>();
         var jobTask           = jobTaskRepository.GetByTaskId(trigger.JobKey.Name);
         if (jobTask != null)
         {
             jobTask.LastRunTime = TimeZoneInfo.ConvertTimeFromUtc(context.NextFireTimeUtc.Value.DateTime,
                                                                   TimeZoneInfo.Local);
             jobTaskRepository.SaveAsync(jobTask);
         }
     }
 }
示例#20
0
文件: Program.cs 项目: CarlosVV/sic
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new SAPInterface()
            };

            IoC.InitializeWith(new FactoryDependencyManager());
            EngineContext.Initialize(false);

            DependencyConfig.Register();

            ServiceBase.Run(ServicesToRun);
        }
示例#21
0
        static void Main(string[] args)
        {
            IoC.InitializeWith(new FactoryDependencyManager());
            DependencyConfig.Register();

            while (true)
            {
                BAPI newBapi = new BAPI();

                Console.WriteLine("Interface SAP Iniciada, buscando pagos......");

                newBapi.Init();

                System.Threading.Thread.Sleep(10000);
            }
        }
示例#22
0
        public static async void Start()
        {
            var log = LogManager.GetLogger("TaskManager");

            log.Info("任务开始");
            try
            {
                DependencyConfig.Register();
                log.Info("完成ioc注入");
                var schedulerFactory = new StdSchedulerFactory();
                scheduler = await schedulerFactory.GetScheduler();

                log.Info("创建scheduler");
                var xmlDocument = new XmlDocument();
                var taskPath    = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TasksSchedule.xml");
                xmlDocument.Load(taskPath);
                log.Info("加载tasksSchedule.xml");
                var nodes = xmlDocument.GetElementsByTagName("Task");
                log.Info("任务数量:" + nodes.Count);
                var taskIndex = 1;
                log.Info("开始启动任务!");
                foreach (XmlNode node in nodes)
                {
                    var taskname       = node.Attributes["name"].Value;
                    var cronExpression = node.Attributes["cronExpression"].Value;
                    log.Info(string.Format("正在启动任务{0},任务时间Cron表达式:{1}。", taskname, cronExpression));
                    IJobDetail jobDetail = new JobDetailImpl("task" + taskIndex, "group" + taskIndex, Assembly.GetExecutingAssembly().GetType(taskname));
                    var        trigger   = new CronTriggerImpl("trigger" + taskIndex, "group" + taskIndex, cronExpression);
                    await scheduler.ScheduleJob(jobDetail, trigger);

                    taskIndex++;
                }

                log.Info("任务启动完成!");
                if (!scheduler.IsStarted)
                {
                    //添加全局监听
                    scheduler.ListenerManager.AddTriggerListener(new CustomTriggerListener(),
                                                                 GroupMatcher <TriggerKey> .AnyGroup());
                }
                await scheduler.Start();
            }
            catch (Exception ex)
            {
                log.Error(ex.ToString());
            }
        }
示例#23
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            //配置
            DependencyConfig.Register();



            //配置
            //  DependencyConfig.Register();
            //配置ef
            Locator.Current.Register <IBatchRunner>(() => new CustomMySqlBatchRunner());
        }
示例#24
0
        /// <summary>
        ///  //Trigger触发后,job执行时调用本方法。true即否决,job后面不执行。
        /// </summary>
        /// <param name="trigger"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context)
        {
            DependencyConfig.Register();
            using (var timeScope = DependencyConfig.Container.BeginLifetimeScope())
            {
                var jobTaskRepository = timeScope.Resolve <IJobTaskRepository>();
                var jobTask           = jobTaskRepository.GetByTaskId(trigger.JobKey.Name);
                if (jobTask != null)
                {
                    jobTask.RecentRunTime = DateTime.Now;
                    jobTask.LastRunTime   = TimeZoneInfo.ConvertTimeFromUtc(context.NextFireTimeUtc.Value.DateTime,
                                                                            TimeZoneInfo.Local);
                    jobTaskRepository.SaveAsync(jobTask);
                }

                return(false);
            }
        }
示例#25
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Adds services for controllers to the specified Microsoft.Extensions.DependencyInjection.IServiceCollection.
            // This method will not register services used for views or pages.
            services.AddControllers(setupAction =>
            {
                // Determines if a 406 response code (an unsupprted request response type) is returned
                // by the API when requested by the consumer.
                setupAction.ReturnHttpNotAcceptable = true;
            }).AddNewtonsoftJson(setupAction =>
            {
                // For converting JSON values to Microsoft.AspNetCore.JsonPatch.JsonPatchDocument
                setupAction.SerializerSettings.ContractResolver =
                    new CamelCasePropertyNamesContractResolver();
            })
            .AddXmlDataContractSerializerFormatters() // Adds the XML API response format, if requested. JSON is supported by default.
            .ConfigureApiBehaviorOptions(setupAction =>
            {
                setupAction.InvalidModelStateResponseFactory = context =>
                {
                    var problemDetails = new ValidationProblemDetails(context.ModelState)
                    {
                        Type     = "modelvalidationproblem",
                        Title    = "One or more model validation errors occurred.",
                        Status   = StatusCodes.Status422UnprocessableEntity,
                        Detail   = "See the errors property for details.",
                        Instance = context.HttpContext.Request.Path
                    };

                    problemDetails.Extensions.Add("traceId", context.HttpContext.TraceIdentifier);

                    return(new UnprocessableEntityObjectResult(problemDetails)
                    {
                        ContentTypes = { "application/problem+json" }
                    });
                };
            });

            // For catching, logging and returning appropriate controller related errors
            services.AddScoped <ApiExceptionFilter>();

            // Register the shared dependencies in the Mapping project
            DependencyConfig.Register(services, Configuration, System.Reflection.Assembly.GetEntryAssembly().GetName().Name);
        }
示例#26
0
        protected override void RegisterApplicationComponents(IApplicationBuilder app, IKernel kernel)
        {
            app.UseMvc(routes =>
            {
                routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
            });

            DependencyConfig.Register(kernel);
            DependencyResolver.SetResolver(kernel);

            var tuple   = kernel.Get <Tuple <IContextStorage, IConnectionContext> >();
            var storage = tuple.Item1;
            var context = tuple.Item2;

            using (context.Scope())
            {
                storage.Get().Database.Migrate();
            }
        }
示例#27
0
        // This method gets called by the runtime. Use this method to add services to the container.y
        public void ConfigureServices(IServiceCollection services)
        {
            // Add Cors
            services.AddCors();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
            .AddFluentValidation(fvc =>
                                 fvc.RegisterValidatorsFromAssemblyContaining <Startup>());

            // Auto Mapper Configurations
            var mappingConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new HiveManagementMappingProfile());
            });

            services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());

            DependencyConfig.Register(services);
            SwagerGenConfig.Register(services);
        }
示例#28
0
        protected void Application_Start()
        {
            IoC.InitializeWith(new FactoryDependencyManager());

            EngineContext.Initialize(false);

            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new RazorViewEngine());

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            DependencyConfig.Register();

            MvcHandler.DisableMvcResponseHeader = true;

            //ValueProviderFactories.Factories.Remove(ValueProviderFactories.Factories.OfType<JsonValueProviderFactory>().FirstOrDefault());
            //ValueProviderFactories.Factories.Add(new JsonNetValueProviderFactory());
        }
示例#29
0
 protected void Application_Start()
 {
     GlobalConfiguration.Configure(WebApiConfig.Register);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     DependencyConfig.Register(GlobalConfiguration.Configuration);
 }
示例#30
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     DependencyConfig.Register();
 }