private void GetValidContextAndSettingWhichOnTable(out ToyRobotContext context,
                                                           out TableTopSettings settings)
        {
            context  = new ToyRobotContext();
            settings = new TableTopSettings();
            var position = new Position()
            {
                X = 10, Y = 10
            };

            context.Position = position;
            context.Facing   = Facing.North;
            settings.MaxX    = 15;
            settings.MinX    = 5;
            settings.MaxY    = 15;
            settings.MinY    = 5;
        }
Beispiel #2
0
        private static IContainer DependencyInjectionConfig()
        {
            var builder  = new ContainerBuilder();
            var settings = new TableTopSettings()
            {
                MaxX = 4,
                MinX = 0,
                MaxY = 4,
                MinY = 0
            };

            builder
            .RegisterInstance <TableTopSettings>(settings)
            .As <ITableTopSettings>();
            builder
            .RegisterType <ToyRobotContext>()
            .As <IToyRobotContext>()
            .InstancePerLifetimeScope();
            builder
            .RegisterType <ToyRobotService>()
            .As <IToyRobotService>()
            .InstancePerLifetimeScope();
            builder
            .RegisterType <ConsoleWriter>()
            .As <IWriter>()
            .InstancePerLifetimeScope();

            builder
            .RegisterAssemblyTypes(typeof(ICommand).GetTypeInfo().Assembly)
            .AsClosedTypesOf(typeof(ICommandHandler <>))
            .InstancePerLifetimeScope();

            builder
            .RegisterType <CommandInvoker>()
            .As <ICommandInvoker>()
            .InstancePerLifetimeScope();

            var container = builder.Build();

            return(container);
        }