コード例 #1
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;
            }
        }