Example #1
0
        //────────────────────────────────────────

        static public bool TryParse(
            object data,
            out bool isValue_Out,
            EnumOperationIfErrorvalue enumCellDataErrorSupport,
            object altValue,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_Table.Name_Library, "XenonValue_BoolImpl", "TryParse", log_Reports);

            bool bResult;

            BoolCellImpl err_BoolCellData;

            if (data is Boolean)
            {
                isValue_Out = (bool)data;

                bResult = true;
            }
            else if (data is BoolCellImpl)
            {
                BoolCellImpl boolCellData = (BoolCellImpl)data;

                if (boolCellData.IsSpaces())
                {
                    // 空白の場合

                    if (EnumOperationIfErrorvalue.Spaces_To_Alt_Value == enumCellDataErrorSupport)
                    {
                        if (altValue is bool)
                        {
                            isValue_Out = (bool)altValue;

                            bResult = true;
                        }
                        else
                        {
                            // エラー
                            isValue_Out      = false;//ゴミ値
                            bResult          = false;
                            err_BoolCellData = boolCellData;
                            goto gt_Error_AnotherType;
                        }
                    }
                    else
                    {
                        // エラー
                        isValue_Out      = false;//ゴミ値
                        bResult          = false;
                        err_BoolCellData = boolCellData;
                        goto gt_Error_EmptyString;
                    }
                }
                else if (!boolCellData.isValidated)
                {
                    // エラー(変換に失敗した場合)
                    isValue_Out      = false;//ゴミ値
                    bResult          = false;
                    err_BoolCellData = boolCellData;
                    goto gt_Error_Invalid;
                }
                else
                {
                    isValue_Out = boolCellData.GetBool();

                    bResult = true;
                }
            }
            else if (null == data)
            {
                // エラー
                isValue_Out = false;//ゴミ値
                bResult     = false;
                goto gt_Error_Null;
            }
            else if (!(data is Cell))
            {
                // エラー
                isValue_Out = false;//ゴミ値
                bResult     = false;
                goto gt_Error_AnotherTypeData;
            }
            else
            {
                // エラー
                isValue_Out = false;//ゴミ値
                bResult     = false;
                goto gt_Error_Class;
            }

            // 正常
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_AnotherType:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー543!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" altValue引数には、bool型の値を指定してください。");
                s.Append(Environment.NewLine);
                s.Append("  boolセル値=[");
                s.Append(err_BoolCellData.Text);
                s.Append("]");

                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);
                s.Append("  問題箇所ヒント:");
                err_BoolCellData.ToText_Locationbreadcrumbs(s);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_EmptyString:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー531!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" セルに、bool型の値を入れてください。空欄にしないでください。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);
                s.Append("  boolセル値=[");
                s.Append(err_BoolCellData.Text);
                s.Append("]");

                //
                // ヒント
                err_BoolCellData.ToText_Locationbreadcrumbs(s);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Invalid:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー112!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" bool型に変換できませんでした。[");
                s.Append(err_BoolCellData.Text);
                s.Append("]");

                //
                // ヒント
                err_BoolCellData.ToText_Locationbreadcrumbs(s);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Null:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー231!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" 指定の引数dataに、BoolCellData型の値を指定してください。空っぽでした。");

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_AnotherTypeData:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー332!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" bool型のデータを入れるところで、");
                s.Append(Environment.NewLine);
                s.Append(" 別の型[" + data.GetType().Name + "]でした。");

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Class:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー233!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append("指定の引数の値[");
                s.Append(((Cell)data).Text);
                s.Append("]は、BoolCellData型ではありませんでした。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                s.Append(" 型=[");
                s.Append(data.GetType().Name);
                s.Append("]");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;

            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
            return(bResult);
        }
Example #2
0
        //────────────────────────────────────────

        //static public string ParseString(object data)
        //{
        //    if (data is Int_HumaninputImpl)
        //    {
        //        return ((Int_HumaninputImpl)data).Text;
        //    }

        //    //
        //    // 以下、エラー対応。
        //    //
        //    // DBNull でここをよく通る。
        //    //
        //    //
        //    //if (false)
        //    //{
        //    //    Log_TextIndented t = new Log_TextIndentedImpl();

        //    //    if (data is DBNull)
        //    //    {
        //    //        t.Append("int型の値が必要なところでしたが、値が存在しませんでした。(DBNull)");
        //    //        t.Append(Environment.NewLine);
        //    //    }
        //    //    else
        //    //    {
        //    //        t.Append("指定の引数の値[");
        //    //        t.Append(((O_Value)data).SHumanInput);
        //    //        t.Append("]は、int型ではありませんでした。");
        //    //        t.Append(Environment.NewLine);
        //    //    }

        //    //    //.WriteLine("OValue_IntImpl.GetString: エラーメッセージ=" + dt.ToString());
        //    //    throw new System.ArgumentException(t.ToString());
        //    //}

        //    //
        //    //
        //    //
        //    //

        //    return "";
        //}

        //────────────────────────────────────────

        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        /// <param name="outInt"></param>
        /// <returns>正常終了なら真、異常終了なら偽。</returns>
        static public bool TryParse(
            object data,
            out int nValue_Out,
            EnumOperationIfErrorvalue enumCellDataErrorSupport,
            object altValue,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);

            log_Method.BeginMethod(Info_Table.Name_Library, "OValue_IntImpl", "TryParse", log_Reports);

            bool bResult;

            Int_HumaninputImpl err_IntCellData;

            if (data is Int_HumaninputImpl)
            {
                Int_HumaninputImpl intCellData = (Int_HumaninputImpl)data;

                if (intCellData.IsSpaces())
                {
                    //
                    // 空白の場合
                    //

                    if (EnumOperationIfErrorvalue.Spaces_To_Alt_Value == enumCellDataErrorSupport)
                    {
                        if (altValue is int)
                        {
                            nValue_Out = (int)altValue;

                            bResult = true;
                        }
                        else
                        {
                            // エラー
                            nValue_Out      = 0;//ゴミ値
                            bResult         = false;
                            err_IntCellData = intCellData;
                            goto gt_Error_AnotherType2;
                        }
                    }
                    else
                    {
                        // エラー
                        nValue_Out      = 0;//ゴミ値
                        bResult         = false;
                        err_IntCellData = intCellData;
                        goto gt_Error_EmptyString;
                    }
                }
                else if (!intCellData.isValidated)
                {
                    // エラー(変換に失敗した場合)
                    nValue_Out      = 0;//ゴミ値
                    bResult         = false;
                    err_IntCellData = intCellData;
                    goto gt_Error_Invalid;
                }
                else
                {
                    // 正常処理
                    nValue_Out = intCellData.nValue_Int;

                    bResult = true;
                }
            }
            else if (null == data)
            {
                // エラー
                nValue_Out = 0;//ゴミ値
                bResult    = false;
                goto gt_Error_Null;
            }
            else if (!(data is Value_Humaninput))
            {
                // エラー
                nValue_Out = 0;//ゴミ値
                bResult    = false;
                goto gt_Error_AnotherType;
            }
            else
            {
                // エラー
                nValue_Out = 0;//ゴミ値
                bResult    = false;
                goto gt_Error_Class;
            }

            // 正常
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_AnotherType2:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー201!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" altValue引数には、int型の値を指定してください。");
                s.Append(Environment.NewLine);
                s.Append("  intセル値=[");
                s.Append(err_IntCellData.Text);
                s.Append("]");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                s.Append("  問題箇所ヒント:");
                s.Append(Environment.NewLine);
                s.Append("   ");
                err_IntCellData.ToText_Locationbreadcrumbs(s);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_EmptyString:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー201!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" セルに、int型の値を入れてください。空欄にしないでください。");
                s.Append(Environment.NewLine);
                s.Append("  intセル値=[");
                s.Append(err_IntCellData.Text);
                s.Append("]");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                s.Append("  問題箇所ヒント:");
                s.Append(Environment.NewLine);
                s.Append("   ");
                err_IntCellData.ToText_Locationbreadcrumbs(s);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Invalid:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー111!!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" int型に変換できませんでした。[");
                s.Append(err_IntCellData.Text);
                s.Append("]");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                s.Append("  問題箇所ヒント:");
                s.Append(Environment.NewLine);
                s.Append("   ");
                err_IntCellData.ToText_Locationbreadcrumbs(s);
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Null:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー110!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" 指定の引数dataに、IntCellData型の値を指定してください。空っぽでした。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_AnotherType:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー111!", log_Method);

                Log_TextIndentedImpl s = new Log_TextIndentedImpl();
                s.Append(" 指定の引数dataに、CellData型の値を指定してください。");
                s.Append(Environment.NewLine);
                s.Append(" 別の型[" + data.GetType().Name + "でした。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
gt_Error_Class:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー112!", log_Method);

                Log_TextIndentedImpl s = new Log_TextIndentedImpl();
                s.Append(" 指定の引数の値[");
                s.Append(((Value_Humaninput)data).Text);
                s.Append("]は、IntCellData型ではありませんでした。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            log_Method.EndMethod(log_Reports);
            return(bResult);
        }
Example #3
0
        //────────────────────────────────────────
        public static bool TryParse(
            object data,
            out bool bValue_Out,
            EnumOperationIfErrorvalue enumCellDataErrorSupport,
            object altValue,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0);
            log_Method.BeginMethod(Info_Table.Name_Library, "XenonValue_BoolImpl", "TryParse", log_Reports);

            bool bResult;

            Bool_HumaninputImpl err_BoolCellData;
            if (data is Boolean)
            {
                bValue_Out = (bool)data;

                bResult = true;
            }
            else if (data is Bool_HumaninputImpl)
            {
                Bool_HumaninputImpl boolCellData = (Bool_HumaninputImpl)data;

                if (boolCellData.IsSpaces())
                {
                    // 空白の場合

                    if (EnumOperationIfErrorvalue.Spaces_To_Alt_Value == enumCellDataErrorSupport)
                    {
                        if (altValue is bool)
                        {
                            bValue_Out = (bool)altValue;

                            bResult = true;
                        }
                        else
                        {
                            // エラー
                            bValue_Out = false;//ゴミ値
                            bResult = false;
                            err_BoolCellData = boolCellData;
                            goto gt_Error_AnotherType;
                        }
                    }
                    else
                    {
                        // エラー
                        bValue_Out = false;//ゴミ値
                        bResult = false;
                        err_BoolCellData = boolCellData;
                        goto gt_Error_EmptyString;
                    }

                }
                else if (!boolCellData.isValidated)
                {
                    // エラー(変換に失敗した場合)
                    bValue_Out = false;//ゴミ値
                    bResult = false;
                    err_BoolCellData = boolCellData;
                    goto gt_Error_Invalid;
                }
                else
                {
                    bValue_Out = boolCellData.GetBool();

                    bResult = true;
                }
            }
            else if (null == data)
            {
                // エラー
                bValue_Out = false;//ゴミ値
                bResult = false;
                goto gt_Error_Null;
            }
            else if (!(data is Value_Humaninput))
            {
                // エラー
                bValue_Out = false;//ゴミ値
                bResult = false;
                goto gt_Error_AnotherTypeData;
            }
            else
            {
                // エラー
                bValue_Out = false;//ゴミ値
                bResult = false;
                goto gt_Error_Class;
            }

            // 正常
            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
            gt_Error_AnotherType:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー543!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" altValue引数には、bool型の値を指定してください。");
                s.Append(Environment.NewLine);
                s.Append("  boolセル値=[");
                s.Append(err_BoolCellData.Text);
                s.Append("]");

                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);
                s.Append("  問題箇所ヒント:");
                err_BoolCellData.ToText_Locationbreadcrumbs(s);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            gt_Error_EmptyString:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー531!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" セルに、bool型の値を入れてください。空欄にしないでください。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);
                s.Append("  boolセル値=[");
                s.Append(err_BoolCellData.Text);
                s.Append("]");

                //
                // ヒント
                err_BoolCellData.ToText_Locationbreadcrumbs(s);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            gt_Error_Invalid:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー112!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" bool型に変換できませんでした。[");
                s.Append(err_BoolCellData.Text);
                s.Append("]");

                //
                // ヒント
                err_BoolCellData.ToText_Locationbreadcrumbs(s);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            gt_Error_Null:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー231!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" 指定の引数dataに、BoolCellData型の値を指定してください。空っぽでした。");

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            gt_Error_AnotherTypeData:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー332!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append(" bool型のデータを入れるところで、");
                s.Append(Environment.NewLine);
                s.Append(" 別の型[" + data.GetType().Name + "]でした。");

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            gt_Error_Class:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー233!", log_Method);

                Log_TextIndented s = new Log_TextIndentedImpl();
                s.Append("指定の引数の値[");
                s.Append(((Value_Humaninput)data).Text);
                s.Append("]は、BoolCellData型ではありませんでした。");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                s.Append(" 型=[");
                s.Append(data.GetType().Name);
                s.Append("]");
                s.Append(Environment.NewLine);
                s.Append(Environment.NewLine);

                r.Message = s.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;

            //────────────────────────────────────────
            #endregion
            //
            //
            gt_EndMethod:
            log_Method.EndMethod(log_Reports);
            return bResult;
        }