Example #1
0
        public static ICommandProcessor Create(TypiconDBContext dbContext)
        {
            var container = new SimpleInjector.Container();

            container.Register <ITypiconSerializer, TypiconSerializer>();

            container.RegisterTypiconCommandClasses();

            container.RegisterInstance(dbContext);

            var processor = container.GetInstance <ICommandProcessor>();

            return(processor);
        }
Example #2
0
        public static ICommandProcessor CreateJobProcessor(TypiconDBContext dbContext, JobRepository jobRepository)
        {
            var container = new SimpleInjector.Container();

            container.Register <ITypiconSerializer, TypiconSerializer>();

            container.Register(typeof(ICommandHandler <>), typeof(MajorDataCalculator).Assembly);
            container.Register <IRuleHandlerSettingsFactory, RuleHandlerSettingsFactory>();
            container.Register <IScheduleDayNameComposer, ScheduleDayNameComposer>();
            container.Register <IRuleSerializerRoot, RuleSerializerRoot>();
            //container.Register<IOutputForms, OutputForms>();
            container.Register <IOutputDayFactory, OutputDayFactory>();

            container.Register <IScheduleDataCalculator, MajorDataCalculator>();
            container.RegisterDecorator(
                typeof(IScheduleDataCalculator),
                typeof(TransparentDataCalculator));

            container.RegisterDecorator(
                typeof(IScheduleDataCalculator),
                typeof(AsAdditionDataCalculator));

            container.RegisterDecorator(
                typeof(IScheduleDataCalculator),
                typeof(ExplicitDataCalculator));


            container.Register(typeof(IQueryHandler <,>), typeof(QueryProcessor).Assembly, typeof(TypiconEntityModel).Assembly);
            container.Register <IQueryProcessor, DataQueryProcessor>();

            container.RegisterSingleton(typeof(IJobRepository), jobRepository);

            container.RegisterTypiconCommandClasses();

            container.RegisterInstance(dbContext);

            var processor = container.GetInstance <ICommandProcessor>();

            return(processor);
        }