コード例 #1
0
        public static async Task Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            // If app is called with `fill` as first command line argument,
            // it will fill the connected database with demo data using
            // the `DemoDataGenerator` class.
            if (args.Length > 0 && args[0] == "fill")
            {
                // Create an EFCore data context from dependency injection's service collection
                using var scope = host.Services.CreateScope();
                using var dc    = scope.ServiceProvider.GetRequiredService <UserManagementDataContext>();

                // Trigger filling of database
                var generator = new DemoDataGenerator(dc);
                await generator.ClearAll();

                await generator.Fill();

                Console.WriteLine("Database has been successfully filled");
                return;
            }

            // We are not in "fill DB with demo data" mode.
            // Therefore, we start the web server for the web API.
            host.Run();
        }
コード例 #2
0
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                var context  = services.GetRequiredService <BigSpenderContext>();
                DemoDataGenerator.Initialize(services);
            }

            host.Run();
        }
コード例 #3
0
ファイル: Configuration.cs プロジェクト: paulswartz/Mason
        public void Configure()
        {
            InitializeLogging();

            try
            {
                ResourceSpace.Uses.CustomDependency <IUnitOfWorkManager, NHibernateUnitOfWorkManager>(DependencyLifetime.Singleton);

                // Initialize OpenRasta/modules
                using (OpenRastaConfiguration.Manual)
                {
                    ResourceSpace.Uses.UriDecorator <ContentTypeExtensionUriDecorator>();
                    ResourceSpace.Uses.CustomDependency <IOperationInterceptor, OperationInterceptor>(DependencyLifetime.PerRequest);
                    ResourceSpace.Uses.CustomDependency <IMasonBuilderContext, MasonBuilderContext>(DependencyLifetime.PerRequest);
                    Projects.ApplicationStarter.Start();
                    Issues.ApplicationStarter.Start();
                    Attachments.ApplicationStarter.Start();
                    Contact.ApplicationStarter.Start();
                    ResourceCommons.ApplicationStarter.Start();
                    JsonSchemas.ApplicationStarter.Start();

                    ResourceSpace.Has.ResourcesOfType <Resource>()
                    .WithoutUri
                    .TranscodedBy <IssueTrackerMasonCodec>();
                }

                // Setup default data
                SessionManager.Restart();
                SessionManager.ExecuteUnitOfWork(() =>
                {
                    IIssueRepository issueRepository           = (IIssueRepository)ResourceSpace.Uses.Resolver.Resolve(typeof(IIssueRepository));
                    IProjectRepository projectRepository       = (IProjectRepository)ResourceSpace.Uses.Resolver.Resolve(typeof(IProjectRepository));
                    IAttachmentRepository attachmentRepository = (IAttachmentRepository)ResourceSpace.Uses.Resolver.Resolve(typeof(IAttachmentRepository));
                    DemoDataGenerator.GenerateDemoData(issueRepository, projectRepository, attachmentRepository);
                });

                ApplicationLifeTimeManager.Start();
            }
            catch (Exception ex)
            {
                Logger.Fatal(ex);
                throw;
            }
        }
コード例 #4
0
        static void Main(string[] args)
        {
            var repositoryManagerApi = new RepositoryManagerApi();
            var emloyeesListAction   = new ShowEmployeesAction(repositoryManagerApi.GetEmployeeApi(), repositoryManagerApi.GetPositionApi(), repositoryManagerApi.GetRuleApi(),
                                                               repositoryManagerApi.GetOwerworkApi(), repositoryManagerApi.GetPaymentApi(), repositoryManagerApi.GetHolidayApi());
            var addAction = new AddAction(repositoryManagerApi.GetEmployeeApi(), repositoryManagerApi.GetPositionApi(), repositoryManagerApi.GetRuleApi(),
                                          repositoryManagerApi.GetOwerworkApi(), repositoryManagerApi.GetPaymentApi(), repositoryManagerApi.GetHolidayApi());
            var removeAction    = new RemoveAction(repositoryManagerApi.GetEmployeeApi(), repositoryManagerApi.GetPositionApi(), repositoryManagerApi.GetRuleApi());
            var calculateAction = new CalculateAction(repositoryManagerApi.GetCalculatorApi(), repositoryManagerApi.GetEmployeeApi());
            var demo            = new DemoDataGenerator(repositoryManagerApi);

            demo.Generate();

            new MenuBuilder()
            .Title("Main menu")
            .Repeatable()
            .Item("Show", emloyeesListAction)
            .Item("Calculate money and hourse", calculateAction)
            .Item("Add", addAction)
            .Item("Remove", removeAction)
            .Exit("Exit")
            .GetMenu()
            .Run();
        }