static void Main()
        {
#if NETCOREAPP
            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");
#else
#endif
            try
            {
                // Add DefaultCulture key in app.Config file and take the culture value from app.Config file.
                string culture = GetConfigParameter.GetConfigValue("DefaultCulture");
                if (!string.IsNullOrEmpty(culture))
                {
                    Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(culture);
                    Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culture);
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format(RM_GetString("EntryPoint"), ex.Message));
            }
        }
예제 #2
0
        /// <summary>OnStartupイベント</summary>
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");
        }
예제 #3
0
        /// <summary></summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {
            // configの初期化(無くても動くようにせねば。)
#if NETCORE
            GetConfigParameter.InitConfiguration("appsettings.json");
#endif

            try
            {
                MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------");
                TestEnumToStringExtensions.Root();
                MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------");
                TestXmlLib.Root();
                MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------");
                TestDeflateCompression.Root();
                MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------");

                // echoすると例外
                try
                {
                    Console.ReadKey();
                }
                catch { }
            }
            catch (Exception ex)
            {
                MyDebug.OutputDebugAndConsole(ex.ToString());
            }
        }
예제 #4
0
        static void Main()
        {
            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
        /// <summary>Main</summary>
        static void Main(string[] args)
        {
            ////////////////////////////////////////////////////////////////////////
            // 簡素なサンプルなので、
            // ・多重化(タスク毎、結果セットを分割)
            // ・フェッチ・サイズ(メモリ消費量を抑える)
            // ・コミット・インターバル、リラン
            // 等の考慮が別途必要になることがあります。
            ////////////////////////////////////////////////////////////////////////

            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");

            // コマンドラインをバラす関数がある。
            List <string> valsLst = null;
            Dictionary <string, string> argsDic = null;

            PubCmnFunction.GetCommandArgs('/', out argsDic, out valsLst);

            // 引数クラスを生成
            // 下位(B・D層)は、テスト クラスを流用する
            TestParameterValue testParameterValue
                = new TestParameterValue(
                      System.Reflection.Assembly.GetExecutingAssembly().Location, "-", "SelectCount",
                      argsDic["/DAP"] + "%"
                      + argsDic["/MODE1"] + "%"
                      + argsDic["/MODE2"] + "%"
                      + argsDic["/EXROLLBACK"],
                      new MyUserInfo("", ""));

            // 戻り値
            TestReturnValue testReturnValue;

            // B層呼出し
            LayerB layerB = new LayerB();

            testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted);

            if (testReturnValue.ErrorFlag == true)
            {
                // 結果(業務続行可能なエラー)
                string error = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n";
                error += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n";
                error += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n";

                Console.WriteLine(error);
                Console.ReadKey();
            }
            else
            {
                // 結果(正常系)
                Console.WriteLine(testReturnValue.Obj.ToString() + "件のデータがあります");
                Console.ReadKey();
            }
        }
        /// <summary>constructor</summary>
        /// <param name="configuration">IConfiguration</param>
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            // ライブラリにも設定
            GetConfigParameter.InitConfiguration(configuration);
            // Dockerで埋め込まれたリソースを使用する場合、
            // 以下のコメントアウトを解除し、appsettings.jsonのappSettings sectionに、
            // "Azure": "既定の名前空間" を指定し、設定ファイルを埋め込まれたリソースに変更する。
            //Touryo.Infrastructure.Business.Dao.MyBaseDao.UseEmbeddedResource = true;
        }
예제 #7
0
        static void Main()
        {
            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");

            // 既定の処理
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // UnhandledExceptionイベント・ハンドラを登録する
            Thread.GetDomain().UnhandledException += new
                                                     UnhandledExceptionEventHandler(Application_UnhandledException);

            // ThreadExceptionイベント・ハンドラを登録する
            Application.ThreadException += new
                                           ThreadExceptionEventHandler(Application_ThreadException);

            // スプラッシュ画面の表示
            Splash.ShowSplash(new Login());

            // <スピンロック>
            // SleepすればCPUオーバヘッドはほとんど無いが
            // Sleep時間を長く、ループ回数を短くする
            // ことでよりCPUオーバヘッドを軽減できる。

            for (int i = 0; i < 30; i++)
            {
                if (Splash.SpinLock)
                {
                    break; // 直ちに抜ける
                }

                Thread.Sleep(100);
            }

            // ThreadExceptionイベント・ハンドラを登録する
            Application.ThreadException += new
                                           ThreadExceptionEventHandler(Application_ThreadException);

            // 次の画面(ログイン画面)の表示
            Application.Run(Splash.NextForm);
            if (Program.FlagEnd)
            {
                return; // ログインしないで終わった場合
            }

            // ThreadExceptionイベント・ハンドラを登録する
            Application.ThreadException += new
                                           ThreadExceptionEventHandler(Application_ThreadException);

            // 業務画面の表示(業務の開始)
            Application.Run(new Form1());
        }
예제 #8
0
        /// <summary>constructor</summary>
        /// <param name="env">IConfiguration</param>
        /// <param name="config">IConfiguration</param>
        public Startup(IHostingEnvironment env, IConfiguration config)
        {
            // 自前
            //IConfigurationBuilder builder = new ConfigurationBuilder()
            //    .SetBasePath(env.ContentRootPath)
            //    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            //    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            //    .AddEnvironmentVariables();
            //config = builder.Build();

            // メンバに設定
            this.HostingEnvironment = env;
            this.Configuration      = config;

            // ライブラリにも設定
            GetConfigParameter.InitConfiguration(config);
            // Dockerで埋め込まれたリソースを使用する場合、
            // 以下のコメントアウトを解除し、appsettings.jsonのappSettings sectionに、
            // "Azure": "既定の名前空間" を指定し、設定ファイルを埋め込まれたリソースに変更する。
            //Touryo.Infrastructure.Business.Dao.MyBaseDao.UseEmbeddedResource = true;
        }
예제 #9
0
 private void Application_Startup(object sender, StartupEventArgs e)
 {
     // configの初期化
     GetConfigParameter.InitConfiguration("appsettings.json");
 }
예제 #10
0
        /// <summary>Main</summary>
        static void Main(string[] args)
        {
            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");

            // コマンドラインをバラす関数がある。
            List <string> valsLst = null;
            Dictionary <string, string> argsDic = null;

            StringVariableOperator.GetCommandArgs('/', out argsDic, out valsLst);

            // 引数クラス値(B層実行用)
            string     screenId   = System.Reflection.Assembly.GetExecutingAssembly().Location;
            string     controlId  = "-";
            string     actionType = "SQL"; // argsDic["/DAP"] + "%" + argsDic["/MODE1"] + "%" + argsDic["/MODE2"] + "%" + argsDic["/EXROLLBACK"];
            MyUserInfo myUserInfo = new MyUserInfo("userName", "ipAddress");

            // B層クラス
            LayerB layerB = new LayerB();

            // ↓B層実行:主キー値を全て検索(ORDER BY 主キー)-----------------------------------------------------

            // 引数クラスを生成
            VoidParameterValue selectPkListParameterValue = new VoidParameterValue(screenId, controlId, "SelectPkList", actionType, myUserInfo);

            // B層呼出し
            SelectPkListReturnValue selectPkReturnValue = (SelectPkListReturnValue)layerB.DoBusinessLogic(selectPkListParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted);

            // 実行結果確認
            if (selectPkReturnValue.ErrorFlag == true)
            {
                // 結果(業務続行可能なエラー)
                string error = "ErrorMessageID:" + selectPkReturnValue.ErrorMessageID + "\r\n";
                error += "ErrorMessage:" + selectPkReturnValue.ErrorMessage + "\r\n";
                error += "ErrorInfo:" + selectPkReturnValue.ErrorInfo + "\r\n";

                Console.WriteLine(error);
                Console.ReadKey();
                return; //バッチ処理終了
            }

            // 戻り値取得
            ArrayList pkList = selectPkReturnValue.PkList;

            // ↑B層実行:主キー値を全て検索(ORDER BY 主キー)-----------------------------------------------------

            int recordCount      = pkList.Count;                                                                                      // 全レコード数
            int initialIndex     = 0;                                                                                                 // 処理開始インデックス ※ todo:リラン時に途中から再開する場合は初期値を変更する
            int transactionCount = Convert.ToInt32(Math.Ceiling(((double)(recordCount - initialIndex)) / INTERMEDIATE_COMMIT_COUNT)); // 更新B層実行回数

            // 性能測定
            // 性能測定 - 開始
            PerformanceRecorder pr = new PerformanceRecorder();

            pr.StartsPerformanceRecord();

            for (int transactionIndex = 0; transactionIndex < transactionCount; transactionIndex++)
            {
                ArrayList subPkList;       // 主キー一覧(1トランザクション分)
                int       subPkStartIndex; // 主キー(1トランザクション分)の開始位置
                int       subPkCount;      // 主キー数(1トランザクション分)

                // 取り出す主キーの開始、数を取得
                subPkStartIndex = initialIndex + (transactionIndex * INTERMEDIATE_COMMIT_COUNT);
                if (subPkStartIndex + INTERMEDIATE_COMMIT_COUNT - 1 > recordCount - 1)
                {
                    subPkCount = (recordCount - initialIndex) % INTERMEDIATE_COMMIT_COUNT;
                }
                else
                {
                    subPkCount = INTERMEDIATE_COMMIT_COUNT;
                }

                // 主キー一覧(1トランザクション分)を取り出す
                subPkList = new ArrayList();
                subPkList.AddRange(pkList.GetRange(subPkStartIndex, subPkCount));

                // ↓B層実行:バッチ処理を実行(1トランザクション分)----------------------------------------------------

                // 引数クラスを生成
                ExecuteBatchProcessParameterValue executeBatchProcessParameterValue = new ExecuteBatchProcessParameterValue(screenId, controlId, "ExecuteBatchProcess", actionType, myUserInfo);
                executeBatchProcessParameterValue.SubPkList = subPkList;

                // B層呼出し
                VoidReturnValue executeBatchProcessReturnValue = (VoidReturnValue)layerB.DoBusinessLogic(executeBatchProcessParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted);

                // 実行結果確認
                if (selectPkReturnValue.ErrorFlag == true)
                {
                    // 結果(業務続行可能なエラー)
                    string error = "ErrorMessageID:" + selectPkReturnValue.ErrorMessageID + "\r\n";
                    error += "ErrorMessage:" + selectPkReturnValue.ErrorMessage + "\r\n";
                    error += "ErrorInfo:" + selectPkReturnValue.ErrorInfo + "\r\n";

                    Console.WriteLine(error);
                    Console.ReadKey();
                    return; // バッチ処理終了
                }

                // ↑B層実行:バッチ処理を実行(1トランザクション分)----------------------------------------------------
            }

            // 性能測定 - 終了
            Console.WriteLine(pr.EndsPerformanceRecord());
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            // configの初期化
            GetConfigParameter.InitConfiguration("appsettings.json");

            // コマンドラインをバラす関数がある。
            List <string> valsLst = null;
            Dictionary <string, string> argsDic = null;

            StringVariableOperator.GetCommandArgs('/', out argsDic, out valsLst);

            if (argsDic.ContainsKey("/SQL"))
            {
                SqlConnection cn = new SqlConnection(GetConfigParameter.GetConnectionString("ConnectionString_SQL"));
                cn.Open();
                SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM SHIPPERS", cn);
                Console.WriteLine("SQL:" + cmd.ExecuteScalar().ToString() + "件");
            }

            if (argsDic.ContainsKey("/ODP"))
            {
                OracleConnection cn = new OracleConnection(GetConfigParameter.GetConnectionString("ConnectionString_ODP"));
                cn.Open();
                OracleCommand cmd = new OracleCommand("SELECT COUNT(*) FROM SHIPPERS", cn);
                Console.WriteLine("ODP:" + cmd.ExecuteScalar().ToString() + "件");
            }

            if (argsDic.ContainsKey("/MCN"))
            {
                MySqlConnection cn = new MySqlConnection(GetConfigParameter.GetConnectionString("ConnectionString_MCN"));
                cn.Open();
                MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM Shippers", cn);
                Console.WriteLine("MCN:" + cmd.ExecuteScalar().ToString() + "件");
            }

            if (argsDic.ContainsKey("/NPS"))
            {
                NpgsqlConnection cn = new NpgsqlConnection(GetConfigParameter.GetConnectionString("ConnectionString_NPS"));
                cn.Open();
                NpgsqlCommand cmd = new NpgsqlCommand("SELECT COUNT(*) FROM SHIPPERS", cn);
                Console.WriteLine("NPS:" + cmd.ExecuteScalar().ToString() + "件");
            }

            if (argsDic.ContainsKey("/REDIS"))
            {
                ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
                IDatabase             cache = redis.GetDatabase();
                cache.StringSet("key:jp:hello", "こんにちは");
                cache.StringSet("key:jp:goodbye", "さようなら");
                Console.WriteLine(cache.StringGet("key:jp:hello"));
                Console.WriteLine(cache.StringGet("key:jp:goodbye"));
            }

            if (argsDic.ContainsKey("/MONGO"))
            {
                string      connectionString = "mongodb://*****:*****@localhost:27017";
                MongoClient client           = new MongoClient(connectionString);

                IMongoDatabase            db         = client.GetDatabase("testdb");
                IMongoCollection <Person> collection = db.GetCollection <Person>("testtbl");

                // 全ドキュメントの削除
                collection.DeleteMany(FilterDefinition <Person> .Empty);

                // ドキュメントの挿入
                Person person = null;
                person = new Person
                {
                    Name = "Dan",
                    Age  = 18,
                };
                collection.InsertOne(person);
                person = new Person
                {
                    Name = "Bob",
                    Age  = 22,
                };
                collection.InsertOne(person);
                person = new Person
                {
                    Name = "John",
                    Age  = 30,
                };
                collection.InsertOne(person);

                // ドキュメントの参照
                var persons = collection.Find(FilterDefinition <Person> .Empty).ToList();

                foreach (Person _person in persons)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(_person));
                }
            }
        }