예제 #1
0
        static void RunFileWatcherTB()
        {
            // Serviceサーバーを起動して、クライアントにWSDLなどを公開するためのコンソールプログラムです。
            System.Threading.Thread.CurrentThread.Name = "Nadesico API";
            application = new Application();

            var buildAssemblyType = new BuildAssemblyParameter();

            buildAssemblyType.Params["ApplicationDirectoryPath"] = @"\Nadesico_InvokeServiceConsole";

            ApplicationContext.SetupApplicationContextImpl(ApplicationContextImpl.CreateInstance(application, buildAssemblyType));
            ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplication();

            var invoker = new FileWatcherTBInvoker();

            invoker.Run();

            bool isEnd = false;

            do
            {
                var command = Console.ReadLine();
                switch (command)
                {
                case "d":
                    invoker.OutputDump();
                    break;

                default:
                    isEnd = true;
                    break;
                }
            } while (!isEnd);
        }
예제 #2
0
        static void RunContentTB1()
        {
            System.Threading.Thread.CurrentThread.Name = "Nadesico API";
            application = new Application();

            var buildAssemblyType = new BuildAssemblyParameter();

            buildAssemblyType.Params["ApplicationDirectoryPath"] = @"\Nadesico_InvokeServiceConsole";

            ApplicationContext.SetupApplicationContextImpl(ApplicationContextImpl.CreateInstance(application, buildAssemblyType));
            ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplication();

            using (var dbc = new AppDbContext())
            {
                var content = new ContentImage();
                content.IdentifyKey         = "aaaa";
                content.Title               = "コンテントテストA";
                content.ArchiveFlag         = true;
                content.ReadableFlag        = true;
                content.Starrating          = 3;
                content.UnsetStarratingFlag = false;

                var repoContent = new ContentImageRepository(dbc);
                repoContent.Add(content);

                dbc.SaveChanges();
            }

            Console.WriteLine("永続化が完了しました。");
        }
예제 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("サーバーシステム・プログラム:");
            while (1 == 1)
            {
                Console.WriteLine("起動モードを選択してください");
                Console.WriteLine("   0: APIサーバ起動");
                Console.Write("> ");

                string d = Console.ReadLine();
                if (d == "0")
                {
                    break;
                }
            }

            // Serviceサーバーを起動して、クライアントにWSDLなどを公開するためのコンソールプログラムです。
            System.Threading.Thread.CurrentThread.Name = "Halcyon API";
            application = new Application();

            var buildAssemblyType = new BuildAssemblyParameter();

            buildAssemblyType.Params["ApplicationDirectoryPath"] = @"\Mogami_InvokeServiceConsole";

            ApplicationContext.SetupApplicationContextImpl(ApplicationContextImpl.CreateInstance(application, buildAssemblyType));
            ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplication();

            RunApiService();
        }
예제 #4
0
        static void RunCategoryTB1()
        {
            System.Threading.Thread.CurrentThread.Name = "Nadesico API";
            application = new Application();

            var buildAssemblyType = new BuildAssemblyParameter();

            buildAssemblyType.Params["ApplicationDirectoryPath"] = @"\Nadesico_InvokeServiceConsole";

            ApplicationContext.SetupApplicationContextImpl(ApplicationContextImpl.CreateInstance(application, buildAssemblyType));
            ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplication();

            long id_child;

            using (var dbc = new AppDbContext())
            {
                var repoCategory = new CategoryRepository(dbc);
                var catRoot      = repoCategory.Load(1L);

                var catNew = new Category
                {
                    Name       = "新しいカテゴリ",
                    Memo       = "新しいメモ",
                    Comment    = "コメント",
                    CreateDate = DateTime.Now,
                    LastUpDate = DateTime.Now,
                    SortType   = CategorySortType.MANUAL,
                };
                repoCategory.Add(catNew);
                dbc.SaveChanges();
                id_child = catNew.Id;

                catRoot.ChildCategories.Add(catNew);
                dbc.SaveChanges();

                Console.WriteLine("ROOTカテゴリの子階層({0})に、新しいカテゴリを追加しました。", id_child);
            }

            // 保存した子階層カテゴリを参照
            using (var dbc = new AppDbContext())
            {
                var repoCategory = new CategoryRepository(dbc);
                var catRoot      = repoCategory.Load(1L);

                Console.WriteLine("ROOTカテゴリの子階層カテゴリのID({0})を確認", catRoot.ChildCategories[0].Id);
            }

            // 子階層カテゴリから、親階層カテゴリ(ID=1)の参照
            using (var dbc = new AppDbContext())
            {
                var repoCategory = new CategoryRepository(dbc);
                var catChild     = repoCategory.Load(id_child);

                Console.WriteLine("子階層カテゴリの親カテゴリ({0})を確認", catChild.ParentCategory.Id);
            }
        }
예제 #5
0
        public void BeforeTest(ITest testDetails)
        {
            lock (this)
            {
                LOG.Info("UsingDatabaseAction::BeforeTest");

                string personalDirectoryPath = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                Console.WriteLine("Dir={0}", personalDirectoryPath);

                if (application == null)
                {
                    application = new Application();
                }

                var buildAssemblyType = new BuildAssemblyParameter();
                buildAssemblyType.Params["ApplicationDirectoryPath"] = @"\Mogami.CT.xUnit";

                ApplicationContext.SetupApplicationContextImpl(ApplicationContextImpl.CreateInstance(application, buildAssemblyType));
                var task = Task.Factory.StartNew(() =>
                {
                    LOG.Info("アプリケーションの初期化を開始します。");
                    this.InitializeApplicationCompleteFlag = false;
                    ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).RemoveUnitDbFile();                     // DBファイルが削除できないこともある
                    //((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplicationProgressEvent += UsingDatabaseActionAttribute_InitializeApplicationProgressEvent;
                    ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplication();

                    DeleteAllData("App");
                    DeleteAllData("Thumbnail");

                    ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).Initialize(InitializeParamType.DATABASE);

                    LOG.Info("アプリケーションの初期化が終了しました。");
                });
                task.Wait();

                LOG.Info("データベースの初期化を完了しました。");

                if (ImportInitializeDataFlag)
                {
                    ImportInitializeData();
                    if (!string.IsNullOrEmpty(ImportSqlFileName))
                    {
                        ImportSqlFile();
                    }
                }
            }
            Console.WriteLine("BeforeTest");
        }
예제 #6
0
        static void RunServiceTB1()
        {
            // Serviceサーバーを起動して、クライアントにWSDLなどを公開するためのコンソールプログラムです。
            System.Threading.Thread.CurrentThread.Name = "Nadesico API";
            application = new Application();

            var buildAssemblyType = new BuildAssemblyParameter();

            buildAssemblyType.Params["ApplicationDirectoryPath"] = @"\Nadesico_InvokeServiceConsole";

            ApplicationContext.SetupApplicationContextImpl(ApplicationContextImpl.CreateInstance(application, buildAssemblyType));
            ((ApplicationContextImpl)ApplicationContextImpl.GetInstance()).InitializeApplication();

            using (ServiceHost host = new ServiceHost(typeof(ApplicationInterfaceService)))
            {
                // ① エンドポイントの手動構成設定 (C/B/A を指定)
                //   バインディングの構成設定を行いたい場合には、Binding インスタンスのプロパティを設定する
                var binder = new NetNamedPipeBinding();
                binder.MaxBufferSize               = 1073741824;
                binder.MaxBufferPoolSize           = 1073741824;
                binder.MaxReceivedMessageSize      = 1073741824;
                binder.ReaderQuotas.MaxArrayLength = 1073741824;

                host.AddServiceEndpoint(typeof(IApplicationInterfaceService), binder,
                                        "net.pipe://localhost/Nadesico.Server/Application");
                // ② ビヘイビアの手動構成設定
                //   すでにいくつかのビヘイビアは既定で追加されているため、取り払ってから再設定する
                host.Description.Behaviors.Remove(typeof(ServiceDebugBehavior));
                host.Description.Behaviors.Remove(typeof(ServiceMetadataBehavior));
                host.Description.Behaviors.Add(new ServiceDebugBehavior {
                    IncludeExceptionDetailInFaults = true
                });
                host.Description.Behaviors.Add(new ServiceMetadataBehavior
                {
                    HttpGetEnabled = true,
                    HttpGetUrl     = new Uri("http://localhost:8001/Nadesico.Server/Application/mex")
                });

                // ホストのオープン
                host.Open();
                Console.WriteLine("WCF サービスを起動しました。");
                Console.ReadLine();
                host.Close();
            }
        }