コード例 #1
0
        /// <summary>存在チェックのみのメソッド</summary>
        /// <param name="filePath">[リソース ファイル]格納フォルダのパス</param>
        /// <param name="fileName">[リソース ファイル]名</param>
        /// <param name="throwException">存在しない場合例外をスローするかどうかを指定</param>
        /// <returns>存在する:true、存在しない:false</returns>
        /// <remarks>自由に利用できる。</remarks>
        public static bool Exists(string filePath, string fileName, bool throwException)
        {
            // パス文字結合
            string loadfilepath = Path.Combine(filePath, fileName);

            // 環境変数の組み込み処理に対応
            loadfilepath = StringVariableOperator.BuiltStringIntoEnvironmentVariable(loadfilepath);

            // 存在チェック
            if (File.Exists(loadfilepath))
            {
                // 存在する。
                return(true);
            }
            else
            {
                // 存在しない。
                if (throwException)
                {
                    throw new ArgumentException(String.Format(
                                                    PublicExceptionMessage.RESOURCE_FILE_NOT_FOUND, loadfilepath));
                }
                else
                {
                    return(false);
                }
            }
        }
コード例 #2
0
        /// <summary>XmlDocumentをLoad</summary>
        /// <param name="filePath">string</param>
        /// <returns>
        /// 真 : ロードできた
        /// 偽 : ロードできなかった
        /// </returns>
        private static bool LoadFromFile(string filePath)
        {
            if (EmbeddedResourceLoader.Exists(filePath, false))
            {
                XmlDocument xMLMSG = new XmlDocument();

                // Load
                xMLMSG.LoadXml(EmbeddedResourceLoader.LoadXMLAsString(filePath));
                // Save
                GetMessage.DicMSG[filePath] = GetMessage.FillDictionary(xMLMSG);

                return(true);
            }
            else if (ResourceLoader.Exists(filePath, false))
            {
                XmlDocument xMLMSG = new XmlDocument();

                // Load
                xMLMSG.Load(StringVariableOperator.BuiltStringIntoEnvironmentVariable(filePath));
                // Save
                GetMessage.DicMSG[filePath] = GetMessage.FillDictionary(xMLMSG);

                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #3
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・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();
            }
        }
コード例 #4
0
        /// <summary>[リソース ファイル]から文字列を読み込む。</summary>
        /// <param name="filePath">[リソース ファイル]格納フォルダのパス</param>
        /// <param name="fileName">[リソース ファイル]名</param>
        /// <param name="enc">エンコード</param>
        /// <returns>[リソース ファイル]から読み込んだ文字列</returns>
        /// <remarks>自由に利用できる。</remarks>
        public static string LoadAsString(string filePath, string fileName, Encoding enc)
        {
            // パス文字結合
            string loadfilepath = Path.Combine(filePath, fileName);

            // 環境変数の組み込み処理に対応
            loadfilepath = StringVariableOperator.BuiltStringIntoEnvironmentVariable(loadfilepath);

            StreamReader sr = null;

            try
            {
                // 存在チェック
                if (File.Exists(loadfilepath))
                {
                    // 存在する。
                }
                else
                {
                    //存在しない。
                    throw new ArgumentException(String.Format(
                                                    PublicExceptionMessage.RESOURCE_FILE_NOT_FOUND, loadfilepath));
                }

                // 開く
                sr = new StreamReader(loadfilepath, enc);

                // 読む
                return(sr.ReadToEnd());
            }
            finally
            {
                // nullチェック
                if (sr == null)
                {
                    // 何もしない。
                }
                else
                {
                    // 閉じる
                    sr.Close();
                }
            }
        }
コード例 #5
0
        /// <summary>コンストラクタ</summary>
        public TransactionControl()
        {
            // トランザクション定義をロードする。

            // リソース ローダでチェック(ここで落とすとハンドルされないので落とさない。)
            if (EmbeddedResourceLoader.Exists(
                    GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION), false))
            {
                // トランザクション定義(XmlDocument)のロード
                this.XMLTCD.LoadXml(
                    EmbeddedResourceLoader.LoadXMLAsString(
                        GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION)));
            }
            else if (ResourceLoader.Exists(
                         GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION), false))
            {
                // トランザクション定義(XmlDocument)のロード
                this.XMLTCD.Load(
                    StringVariableOperator.BuiltStringIntoEnvironmentVariable(
                        GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION)));
            }
            else
            {
                // チェック
                if (GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION) == null ||
                    GetConfigParameter.GetConfigValue(FxLiteral.XML_TC_DEFINITION) == "")
                {
                    // 定義が無い(offの扱い)。

                    // トランザクション定義(XmlDocument)を空で初期化
                    this.XMLTCD.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><TCD></TCD>");
                }
                else
                {
                    // 定義が間違っている(エラー)。

                    // エラーをスロー
                    throw new FrameworkException(
                              FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[0],
                              String.Format(FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[1],
                                            FxLiteral.XML_TC_DEFINITION));
                }
            }
        }
コード例 #6
0
        /// <summary>Main</summary>
        static void Main(string[] args)
        {
            // コマンドラインをバラす関数がある。
            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();
        }
コード例 #7
0
        /// <summary>コンストラクタ</summary>
        /// <remarks>CallController、ServiceInterfaceから利用するので、public</remarks>
        public InProcessNameService()
        {
            // インプロセス呼び出しの名前解決定義をロードする。

            #region  埋め込まれたリソース ローダでチェック(ここで落とすとハンドルされないので落とさない。)

            if (EmbeddedResourceLoader.Exists(
                    GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION), false))
            {
                // インプロセス呼び出しの名前解決定義(XmlDocument)を[埋め込まれたリソース]で初期化
                this.XMLTMD_InProcess.LoadXml(EmbeddedResourceLoader.LoadXMLAsString(
                                                  GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION)));

                // 戻す
                return;
            }
            else
            {
                // 何もしない。
            }

            #endregion

            #region リソース ローダでチェック(ここで落とすとハンドルされないので落とさない。)

            if (ResourceLoader.Exists(
                    GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION), false))
            {
                // インプロセス呼び出しの名前解決定義(XmlDocument)を[リソース]で初期化
                this.XMLTMD_InProcess.Load(
                    StringVariableOperator.BuiltStringIntoEnvironmentVariable(
                        GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION)));

                // 戻す
                return;
            }
            else
            {
                // 何もしない。
            }

            #endregion

            #region チェック(定義の有無や、定義の誤り)

            if (GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION) == null ||
                GetConfigParameter.GetConfigValue(FxLiteral.XML_TM_INPROCESS_DEFINITION) == "")
            {
                // 定義が無い(offの扱い)。

                // インプロセス呼び出しの名前解決定義(XmlDocument)を空で初期化
                this.XMLTMD_InProcess.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><TMD></TMD>");
            }
            else
            {
                // 定義が間違っている(エラー)。

                // 例外をスロー
                throw new FrameworkException(
                          FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[0],
                          String.Format(FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[1],
                                        FxLiteral.XML_TM_INPROCESS_DEFINITION));
            }

            #endregion
        }
コード例 #8
0
        /// <summary>名前解決(URL)</summary>
        /// <param name="name">名前</param>
        /// <param name="url">URL</param>
        /// <param name="timeout">タイムアウト</param>
        /// <param name="props">プロパティ</param>
        internal void NameResolutionProtocolUrl(string name, out string url, out int timeout, out Dictionary <string, string> props)
        {
            // 初期化
            url     = "";
            timeout = -1;
            props   = new Dictionary <string, string>();

            // 属性チェック用
            XmlNode xmlNode = null;

            // Transmissionタグを取得
            XmlElement xmlTransmission = this.XMLTMD_Protocol.GetElementById(name);

            // チェック
            if (xmlTransmission == null)
            {
                // Transmissionタグがない場合

                // 例外をスロー
                throw new FrameworkException(
                          FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                          String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                        String.Format(FrameworkExceptionMessage.NAMESERVICE_XML_FORMAT_ERROR_tm, name)));
            }
            else
            {
                // Transmissionタグがある場合

                #region URL

                // url属性
                xmlNode = xmlTransmission.Attributes[FxLiteral.XML_TM_PROTOCOL_ATTR_URL];

                if (xmlNode == null)
                {
                    // url属性なしの場合

                    // url_ref属性
                    xmlNode = xmlTransmission.Attributes[FxLiteral.XML_TM_PROTOCOL_ATTR_URL_REF];

                    if (xmlNode == null)
                    {
                        // url_ref属性なしの場合

                        // 例外をスロー
                        throw new FrameworkException(
                                  FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                  System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                       System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_url1, name)));
                    }
                    else
                    {
                        // url_ref属性ありの場合
                        string url_ref = xmlNode.Value;

                        if (this.XMLTMD_Protocol.GetElementById(url_ref) == null)
                        {
                            // IDFERからUrlタグを発見できない場合

                            // 例外をスロー
                            throw new FrameworkException(
                                      FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                      System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                           System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_url2, url_ref)));
                        }
                        else
                        {
                            // IDFERからUrlタグを発見できた場合

                            // value属性
                            xmlNode = this.XMLTMD_Protocol.GetElementById(url_ref).Attributes[FxLiteral.XML_CMN_ATTR_VALUE];

                            if (xmlNode == null)
                            {
                                // value属性なしの場合

                                // 例外をスロー
                                throw new FrameworkException(
                                          FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                          System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                               System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_url3, url_ref)));
                            }
                            else
                            {
                                // value属性ありの場合

                                // urlを取得
                                url = xmlNode.Value;

                                if (url == "")
                                {
                                    // urlが空の場合

                                    // 例外をスロー
                                    throw new FrameworkException(
                                              FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                              System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                                   System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_url4,
                                                                                        FxLiteral.XML_TM_PROTOCOL_TAG_URL, url_ref)));
                                }
                            }
                        }
                    }
                }
                else
                {
                    // url属性ありの場合

                    // urlを取得
                    url = xmlNode.Value;

                    if (url == "")
                    {
                        // urlが空の場合

                        // 例外をスロー
                        throw new FrameworkException(
                                  FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                  System.String.Format(
                                      FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                      System.String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_url4,
                                                           FxLiteral.XML_TM_TAG_TRANSMISSION, name)));
                    }
                }

                #endregion

                #region タイムアウト

                // timeout属性
                xmlNode = xmlTransmission.Attributes[FxLiteral.XML_TM_PROTOCOL_ATTR_TIMEOUT];

                if (xmlNode == null)
                {
                    // timeout属性なしの場合 → なにもしない。
                }
                else
                {
                    // timeout属性ありの場合
                    string timeoutString = xmlNode.Value;

                    // チェック(数値か)
                    if (int.TryParse(timeoutString, out timeout))
                    {
                        // timeout = int.Parse(timeoutString);
                    }
                    else
                    {
                        // timeout値のフォーマットエラー

                        // 例外をスロー
                        throw new FrameworkException(
                                  FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                  String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_to, name)));
                    }
                }

                #endregion

                #region プロパティ

                // prop_ref属性
                xmlNode = xmlTransmission.Attributes[FxLiteral.XML_TM_PROTOCOL_ATTR_PROP_REF];

                if (xmlNode == null)
                {
                    // prop_ref属性なしの場合 → なにもしない。
                }
                else
                {
                    // prop_ref属性ありの場合
                    string prop_ref = xmlNode.Value;

                    if (this.XMLTMD_Protocol.GetElementById(prop_ref) == null)
                    {
                        // IDFERからPropタグを発見できない場合

                        // 例外をスロー
                        throw new FrameworkException(
                                  FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                  String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_prop1, prop_ref)));
                    }
                    else
                    {
                        // IDFERからPropタグを発見できた場合

                        // value属性
                        xmlNode = this.XMLTMD_Protocol.GetElementById(prop_ref).Attributes[FxLiteral.XML_CMN_ATTR_VALUE];

                        // プロパティ文字列を取得
                        if (xmlNode == null)
                        {
                            // value属性なしの場合

                            // 例外をスロー
                            throw new FrameworkException(
                                      FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[0],
                                      String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR[1],
                                                    String.Format(FrameworkExceptionMessage.PRT_NAMESERVICE_XML_FORMAT_ERROR_prop2, prop_ref)));
                        }
                        else
                        {
                            // value属性ありの場合

                            // プロパティ文字列をディクショナリに変換
                            string propStr = xmlNode.Value;
                            props = StringVariableOperator.GetPropsFromPropString(propStr);
                        }
                    }
                }

                #endregion
            }
        }
コード例 #9
0
 public static string BuiltStringIntoEnvironmentVariable(string builtString)
 {
     return(StringVariableOperator.BuiltStringIntoEnvironmentVariable(builtString));
 }
コード例 #10
0
 public static void GetCommandArgs(char prefixChar, out Dictionary <string, string> argsDic, out List <string> valsLst)
 {
     StringVariableOperator.GetCommandArgs(prefixChar, out argsDic, out valsLst);
     return;
 }
コード例 #11
0
 public static Dictionary <string, string> GetPropsFromPropString(string propString)
 {
     return(StringVariableOperator.GetPropsFromPropString(propString));
 }
コード例 #12
0
        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));
                }
            }
        }
コード例 #13
0
            /// <summary>コンストラクタ</summary>
            /// <remarks>インナークラス</remarks>
            public SharedPropertyManager()
            {
                // 共有情報定義をロードする。
                XmlDocument xMLSP = new XmlDocument();

                if (GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION) == null ||
                    GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION) == "")
                {
                    // 定義が無い(offの扱い)。

                    // 共有情報定義(XmlDocument)を空で初期化
                    xMLSP.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><SPD></SPD>");
                }
                else
                {
                    //// 定義が間違っている(エラー)。

                    //// エラーをスロー
                    //throw new FrameworkException(
                    //    FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[0],
                    //    String.Format(FrameworkExceptionMessage.ERROR_IN_WRITING_OF_FX_PATH2[1],
                    //                    FxLiteral.XML_SP_DEFINITION));

                    #region  埋め込まれたリソース ローダでチェック(ここで落とすとハンドルされないので落とさない。)

                    if (EmbeddedResourceLoader.Exists(
                            GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION), false))
                    {
                        // 共有情報定義(XmlDocument)を[埋め込まれたリソース]で初期化
                        xMLSP.LoadXml(EmbeddedResourceLoader.LoadXMLAsString(
                                          GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION)));

                        //// 戻す
                        //return;
                    }
                    else
                    {
                        // 何もしない。
                    }

                    #endregion

                    #region リソース ローダでチェック(ここで落とすとハンドルされないので落とさない。)

                    if (ResourceLoader.Exists(
                            GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION), false))
                    {
                        // 共有情報定義(XmlDocument)を[リソース]で初期化
                        xMLSP.Load(
                            StringVariableOperator.BuiltStringIntoEnvironmentVariable(
                                GetConfigParameter.GetConfigValue(FxLiteral.XML_SP_DEFINITION)));

                        //// 戻す
                        //return;
                    }
                    else
                    {
                        // 何もしない。
                    }

                    #endregion
                }

                #region すべてのSHAREDPROPタグをDictionary化

                // すべてのSHAREDPROPタグを取得、大文字・小文字は区別する。
                XmlNodeList xmlNodeList = xMLSP.GetElementsByTagName(FxLiteral.XML_SP_TAG_SHARED_PROPERTY);

                foreach (XmlNode xmlNodeSP in xmlNodeList)
                {
                    // 属性の取得
                    XmlNode xmlNodeKey = xmlNodeSP.Attributes.GetNamedItem(FxLiteral.XML_CMN_ATTR_KEY);
                    XmlNode xmlNodeVal = xmlNodeSP.Attributes.GetNamedItem(FxLiteral.XML_CMN_ATTR_VALUE);

                    if (xmlNodeKey == null)
                    {
                        // id属性なしの場合

                        throw new FrameworkException(
                                  FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[0],
                                  String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[1],
                                                String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR_ATTR, FxLiteral.XML_CMN_ATTR_KEY, "-")));
                    }

                    if (xmlNodeVal == null)
                    {
                        // description属性なしの場合

                        throw new FrameworkException(
                                  FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[0],
                                  String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR[1],
                                                String.Format(FrameworkExceptionMessage.SHAREDPROPERTY_XML_FORMAT_ERROR_ATTR, FxLiteral.XML_CMN_ATTR_VALUE, xmlNodeKey.Value)));
                    }

                    this.DicSP.Add(xmlNodeKey.Value, xmlNodeVal.Value);
                }

                #endregion
            }
コード例 #14
0
        /// <summary>
        /// log4net.ILogインスタンスの取得
        /// </summary>
        /// <param name="loggerName">ロガー名</param>
        /// <returns>log4netのインターフェイス</returns>
        public static log4net.ILog GetLog4netIf(string loggerName)
        {
            lock (LogManager._lock)
            {
                // null対策
                if (LogManager._logIfHt == null)
                {
                    LogManager._logIfHt = new Dictionary <string, log4net.ILog>();
                }

                // すでにlog4net.ILogインスタンスが存在する。
                if (LogManager._logIfHt.ContainsKey(loggerName)) // Dic化でnullチェック変更
                {
                    // 生成済みのlog4net.ILogインスタンスを返す。
                    return((log4net.ILog)LogManager._logIfHt[loggerName]);
                }
                else
                {
                    // #12-start

                    // 定義ファイル
                    string log4netConfFile = GetConfigParameter.GetConfigValue(PubLiteral.LOG4NET_CONF_FILE);

                    // log4netの設定ファイルのパス
                    if (log4netConfFile == null || log4netConfFile == "")
                    {
                        // 定義ファイルのパスが無い場合

                        // 空のロガーを返す(エラーにはならない)
#if NETSTD
                        return(log4net.LogManager.GetLogger(Assembly.GetEntryAssembly(), ""));
#else
                        return(log4net.LogManager.GetLogger(""));
#endif
                    }
                    else
                    {
#if NETSTD
                        // Repositoryなる何か。
                        ILoggerRepository logRep = log4net.LogManager.CreateRepository(
                            Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
#else
#endif

                        // 埋め込まれたリソース ローダで存在チェック
                        if (EmbeddedResourceLoader.Exists(log4netConfFile, false))
                        {
                            // ログ定義 [埋め込まれたリソース]
                            XmlDocument xmlDef = new XmlDocument();

                            // Exceptionが上がり得る。
                            xmlDef.LoadXml(EmbeddedResourceLoader.LoadXMLAsString(log4netConfFile));

                            if (xmlDef["log4net"] == null)
                            {
                                // XmlElement(log4net)が無い場合
                                throw new ArgumentException(String.Format(
                                                                PublicExceptionMessage.XML_ELEMENT_ERROR,
                                                                PublicExceptionMessage.XML_ELEMENT_ERROR_LOG4NET));
                            }

                            // log4net
#if NETSTD
                            XmlConfigurator.Configure(logRep,
                                                      (XmlElement)xmlDef["log4net"]);
#else
                            XmlConfigurator.Configure(xmlDef["log4net"]);
#endif
                        }
                        else
                        {
                            // リソース ローダで存在チェック(存在しなければエラー)
                            ResourceLoader.Exists(log4netConfFile, true);

                            // ログ定義 [リソース ファイル] → ストリームを開く
                            FileStream s = new FileStream(
                                StringVariableOperator.BuiltStringIntoEnvironmentVariable(log4netConfFile),
                                FileMode.Open, FileAccess.Read, FileShare.Read);

                            // log4netのXML形式の設定ファイルを読み込む。
#if NETSTD
                            XmlConfigurator.Configure(logRep, s);
#else
                            XmlConfigurator.Configure(s);
#endif

                            s.Close();
                        }

                        // log4net.ILogインスタンスを初期化する。
#if NETSTD
                        LogManager._logIfHt.Add(
                            loggerName,
                            log4net.LogManager.GetLogger(Assembly.GetEntryAssembly(), loggerName));
#else
                        LogManager._logIfHt.Add(loggerName, log4net.LogManager.GetLogger(loggerName));
#endif

                        // 生成したlog4net.ILogインスタンスを返す。
                        return((log4net.ILog)LogManager._logIfHt[loggerName]);
                    }

                    // #12-end
                }
            }
        }