示例#1
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var di = new DI();

            di.Configure();
        }
示例#2
0
        private static void InitializeContainer(Container container)
        {
            DI.Configure(container);

            container.RegisterPerWebRequest(
                () => new UserManager <ApplicationUser, string>(new UserStore <ApplicationUser>(DI.Resolve <EntityFrameworkDbContext>())));

            container.Register(() => AdvancedExtensions.IsVerifying(container)
                ? new OwinContext(new Dictionary <string, object>()).Authentication
                : HttpContext.Current.GetOwinContext().Authentication);
        }
示例#3
0
        static void Main(string[] args)
        {
            DI.Configure(services => services
                         .AddSingleton <Settings>()
                         .AddSingleton <IDirSettings>(p => p.GetService <Settings>())
                         .AddSingleton <SceneManager>()
                         .AddSingleton <ContentFinder>()
                         .AddSingleton <Scene>()
                         .AddSingleton <Vectorizer>());
            DI.Build();

            var settings     = DI.Get <Settings>();
            var sceneManager = DI.Get <SceneManager>();
            var scene        = DI.Get <Scene>();

            try
            {
                var sw          = Stopwatch.StartNew();
                var shape       = scene.GetShape();
                var meshedScene = sceneManager.CreateScene(shape);
                sw.Stop();

                Console.WriteLine($"Scene generation time {TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds)}");

                meshedScene.Save(settings.FullFileName, settings.Format);

                var process = new Process();
                process.StartInfo.UseShellExecute = true;
                process.StartInfo.FileName        = settings.FullFileName;
                process.Start();
            }
            catch (PolygonFillException)
            {
                Console.WriteLine($"Incorrect construction. Use View (2D) to fix it!");
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            // TODO : Implement an IOC container tool for dependency injection. DONE
            // TODO : Implement more validations, exception handling and log mechanisms.
            // TODO : Add unit test project.
            // TODO : More explanations for methods, fields etc..
            // TODO : Some refactorings.

            var serviceProvider = DI.Configure();

            Console.WriteLine("Hello Mars!");
            Console.WriteLine("Test Input :");

            var plateauGrid = serviceProvider.GetService <IPlateauGrid>();

            while (!plateauGrid.CheckInit)
            {
                Console.WriteLine("Plateau grid size :");
                var plateauGridSizeInput = Console.ReadLine();
                Console.WriteLine(plateauGrid.Initialize(plateauGridSizeInput));
            }

            var addAnotherRover = true;

            while (addAnotherRover)
            {
                Console.WriteLine("Rover position :");
                var roverPositionInput = Console.ReadLine();
                Console.WriteLine("Rover command :");
                var roverCommandInput = Console.ReadLine();

                var rover = serviceProvider.GetService <IRover>();
                if (rover.Initialize(roverPositionInput))
                {
                    rover.PlateauGrid = plateauGrid;
                    rover.CommandParse(roverCommandInput);
                    plateauGrid.Rovers.Add(rover);
                }

                Console.WriteLine("Do you want to deploy another rover ? (Y)");
                var addAnotherRoverInput = Console.ReadLine();
                if (addAnotherRoverInput.ToUpper() != "Y")
                {
                    addAnotherRover = false;
                }
            }

            Console.WriteLine("Expected Output :");
            foreach (var rover in plateauGrid.Rovers)
            {
                var roverCommandManager = serviceProvider.GetService <IRoverCommandManager>();
                roverCommandManager.Rover = rover;

                foreach (var roverCommand in rover.Commands)
                {
                    roverCommandManager.AddCommand(roverCommand);
                }

                roverCommandManager.ProcessCommands();

                Console.WriteLine($"{roverCommandManager.Rover.CurrentPosition.X} " +
                                  $"{roverCommandManager.Rover.CurrentPosition.Y} " +
                                  $"{roverCommandManager.Rover.CurrentPosition.Direction.ToString()}");
            }

            /*
             * // TODO : Convert to unit test project.
             * // 5 5
             * var plateauGrid1 = new PlateauGrid(5, 5);
             *
             * // 1 2 N
             * // LMLMLMLMM
             * var roverPosition = new RoverPosition(RoverDirection.N, 1, 2);
             * var rover = new Rover(roverPosition, plateauGrid1);
             *
             * var roverCommandManager = new RoverCommandManager(rover);
             * roverCommandManager.AddCommand(new TurnLeftCommand(rover));
             * roverCommandManager.AddCommand(new MoveCommand(rover));
             * roverCommandManager.AddCommand(new TurnLeftCommand(rover));
             * roverCommandManager.AddCommand(new MoveCommand(rover));
             * roverCommandManager.AddCommand(new TurnLeftCommand(rover));
             * roverCommandManager.AddCommand(new MoveCommand(rover));
             * roverCommandManager.AddCommand(new TurnLeftCommand(rover));
             * roverCommandManager.AddCommand(new MoveCommand(rover));
             * roverCommandManager.AddCommand(new MoveCommand(rover));
             *
             * roverCommandManager.ProcessCommands();
             *
             * Console.WriteLine($"X: {roverCommandManager.Rover.CurrentPosition.X}, " +
             *  $"Y: {roverCommandManager.Rover.CurrentPosition.Y}, " +
             *  $"Direction: {roverCommandManager.Rover.CurrentPosition.Direction.ToString()}");
             *
             * // 3 3 E
             * // MMRMMRMRRM
             * var roverPosition2 = new RoverPosition(RoverDirection.E, 3, 3);
             * var rover2 = new Rover(roverPosition2, plateauGrid1);
             *
             * var roverCommandManager2 = new RoverCommandManager(rover2);
             * roverCommandManager2.AddCommand(new MoveCommand(rover2));
             * roverCommandManager2.AddCommand(new MoveCommand(rover2));
             * roverCommandManager2.AddCommand(new TurnRightCommand(rover2));
             * roverCommandManager2.AddCommand(new MoveCommand(rover2));
             * roverCommandManager2.AddCommand(new MoveCommand(rover2));
             * roverCommandManager2.AddCommand(new TurnRightCommand(rover2));
             * roverCommandManager2.AddCommand(new MoveCommand(rover2));
             * roverCommandManager2.AddCommand(new TurnRightCommand(rover2));
             * roverCommandManager2.AddCommand(new TurnRightCommand(rover2));
             * roverCommandManager2.AddCommand(new MoveCommand(rover2));
             *
             * roverCommandManager2.ProcessCommands();
             *
             * Console.WriteLine($"X: {roverCommandManager2.Rover.CurrentPosition.X}, " +
             *              $"Y: {roverCommandManager2.Rover.CurrentPosition.Y}, " +
             *              $"Direction: {roverCommandManager2.Rover.CurrentPosition.Direction.ToString()}");
             *
             */

            Console.ReadKey();
        }