예제 #1
0
        /// <summary>
        /// SaveJson Method(To save records in Json Format)
        /// </summary>
        /// <returns>string</returns>
        public string SaveJson()
        {
            TableRecords tableRecords = null;

            List <TableRecords> lstTableRecords = new List <TableRecords>();

            int tblNo = -1;

            foreach (DTTable dt in this._tbls)
            {
                tblNo++;

                tableRecords = new TableRecords();

                tableRecords.tbl = dt.TableName;

                tableRecords.col = new Dictionary <string, string>();
                foreach (DTColumn col in dt.Cols)
                {
                    tableRecords.col.Add(col.ColName, DTColumn.EnumToString(col.ColType));
                }

                tableRecords.row = new ArrayList();
                Dictionary <string, object> rowDetails = null;
                int colNo        = 0;
                int rowStateFlag = 0;

                foreach (DTRow dr in dt.Rows)
                {
                    rowDetails   = new Dictionary <string, object>();
                    rowStateFlag = 1;
                    foreach (DTColumn col in dt.Cols)
                    {
                        colNo = colNo + 1;
                        object colValue;
                        colValue = dr[col.ColName];

                        // add values to rowdetails based on colvalue.
                        string strTemp = CustomMarshaler.StringFromPrimitivetype(colValue, false);
                        rowDetails.Add(col.ColName, strTemp);

                        // adding rowState in rowDeatils.
                        if (rowStateFlag == 1 && colNo == dt.Cols.Count)
                        {
                            rowDetails.Add("rowstate", (int)dr.RowState);
                            rowStateFlag = 0;
                            colNo        = 0;
                        }
                    }
                    tableRecords.row.Add(rowDetails);
                }
                lstTableRecords.Add(tableRecords);
            }

            //converting the list into json format and return that string value
            string json = JsonConvert.SerializeObject(lstTableRecords);

            return(json);
        }
예제 #2
0
        /// <summary>テキストとしてセーブする</summary>
        /// <param name="tw">任意のTextWriter </param>
        public void Save(TextWriter tw)
        {
            // 表番号の初期化(負荷テスト用のID用)
            int tblNo = -1;

            foreach (DTTable dt in this._tbls)
            {
                // 表番号のインクリメント
                tblNo++;

                // 表名
                tw.WriteLine("tbl:" + dt.TableName);

                tw.WriteLine("---");

                // 列情報
                foreach (DTColumn col in dt.Cols)
                {
                    tw.WriteLine("col:" + col.ColName + "," + DTColumn.EnumToString(col.ColType));
                }

                tw.WriteLine("---");

                // 行番号の初期化(負荷テスト用のID用)
                int rowNo = -1;

                // 行のセル
                foreach (DTRow dr in dt.Rows)
                {
                    // 行番号のインクリメント
                    rowNo++;

                    // 列番号の初期化(負荷テスト用のID用)
                    int colNo = -1;

                    foreach (object o in dr)
                    {
                        // 列番号のインクリメント
                        colNo++;

                        string strTemp = CustomMarshaler.StringFromPrimitivetype(o, true);
                        tw.WriteLine(
                            "cel:"
                            + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() +
                            ":" + strTemp);
                    }

                    // 行ステータス
                    tw.WriteLine("row:" + (int)dr.RowState);

                    tw.WriteLine("---");
                }
            }
        }
예제 #3
0
        /// <summary>テキストとしてセーブする</summary>
        /// <param name="tw">任意のTextWriter </param>
        public void Save(TextWriter tw)
        {
            // 表番号の初期化(負荷テスト用のID用)
            int tblNo = -1;

            foreach (DTTable dt in this._tbls)
            {
                // 表番号のインクリメント
                tblNo++;

                // 表名
                tw.WriteLine("tbl:" + dt.TableName);

                tw.WriteLine("---");

                // 列情報
                foreach (DTColumn col in dt.Cols)
                {
                    tw.WriteLine("col:" + col.ColName + "," + DTColumn.EnumToString(col.ColType));
                }

                tw.WriteLine("---");

                // 行番号の初期化(負荷テスト用のID用)
                int rowNo = -1;

                // 行のセル
                foreach (DTRow dr in dt.Rows)
                {
                    // 行番号のインクリメント
                    rowNo++;

                    // 列番号の初期化(負荷テスト用のID用)
                    int colNo = -1;

                    foreach (object o in dr)
                    {
                        // 列番号のインクリメント
                        colNo++;

                        if (o == null)
                        {
                            // null値はnullと出力する。
                            tw.WriteLine(
                                "cel:"
                                + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() +
                                ":" + "null");
                        }
                        else if (DTColumn.CheckType(o, DTType.String))
                        {
                            // 文字列は改行を処理する
                            string strTemp = ((string)o);
                            strTemp = strTemp.Replace("\r", "\rrnr:");
                            strTemp = strTemp.Replace("\n", "\rrnn:");

                            strTemp = strTemp.Replace("\r", "\r\n");
                            tw.WriteLine(
                                "cel:"
                                + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() +
                                ":" + strTemp);
                        }
                        else if (DTColumn.CheckType(o, DTType.ByteArray))
                        {
                            // バイト配列は、Base64エンコードして電文に乗せる
                            string strBase64 = Convert.ToBase64String((byte[])o);
                            tw.WriteLine(
                                "cel:"
                                + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() +
                                ":" + strBase64);
                        }
                        else if (DTColumn.CheckType(o, DTType.DateTime))
                        {
                            // DateTimeは、yyyy/M/d-H:m:s.fffとする。
                            DateTime dttm    = (DateTime)o;
                            string   strDttm = "";

                            strDttm += dttm.Year + "/";
                            strDttm += dttm.Month + "/";
                            strDttm += dttm.Day + "-";

                            strDttm += dttm.Hour + ":";
                            strDttm += dttm.Minute + ":";
                            strDttm += dttm.Second + ".";
                            strDttm += dttm.Millisecond;

                            tw.WriteLine(
                                "cel:"
                                + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() +
                                ":" + strDttm);
                        }
                        else
                        {
                            // 通常通り、ToStringして出力
                            tw.WriteLine(
                                "cel:"
                                + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() +
                                ":" + o.ToString());
                        }
                    }

                    // 行ステータス
                    tw.WriteLine("row:" + (int)dr.RowState);

                    tw.WriteLine("---");
                }
            }
        }
예제 #4
0
        /// <summary>
        /// SaveJson Method(To save records in Json Format)
        /// </summary>
        /// <returns>string</returns>
        public string SaveJson()
        {
            TableRecords        tableRecords    = null;
            List <TableRecords> lstTableRecords = new List <TableRecords>();

            int tblNo = -1;

            foreach (DTTable dt in this._tbls)
            {
                tblNo++;

                tableRecords = new TableRecords();

                tableRecords.tbl = dt.TableName;

                tableRecords.col = new Dictionary <string, string>();
                foreach (DTColumn col in dt.Cols)
                {
                    tableRecords.col.Add(col.ColName, DTColumn.EnumToString(col.ColType));
                }

                tableRecords.row = new ArrayList();
                Dictionary <string, object> rowDetails = null;
                int colNo        = 0;
                int rowStateFlag = 0;

                foreach (DTRow dr in dt.Rows)
                {
                    rowDetails   = new Dictionary <string, object>();
                    rowStateFlag = 1;
                    foreach (DTColumn col in dt.Cols)
                    {
                        colNo = colNo + 1;
                        object colValue;
                        colValue = dr[col.ColName];
                        if (colValue == null)
                        {
                            //add null to rowDetails
                            rowDetails.Add(col.ColName, null);
                        }
                        else if (DTColumn.CheckType(colValue, DTType.String))
                        {
                            string strTemp = ((string)colValue);
                            rowDetails.Add(col.ColName, strTemp);
                        }
                        else if (DTColumn.CheckType(colValue, DTType.ByteArray))
                        {
                            // バイト配列は、Base64エンコードして電文に乗せる
                            string strBase64 = Convert.ToBase64String((byte[])colValue);
                            rowDetails.Add(col.ColName, strBase64);
                        }
                        else if (DTColumn.CheckType(colValue, DTType.DateTime))
                        {
                            // DateTimeは、yyyy/M/d-H:m:s.fffとする。
                            DateTime dttm    = (DateTime)colValue;
                            string   strDttm = "";

                            strDttm += dttm.Year + "/";
                            strDttm += dttm.Month + "/";
                            strDttm += dttm.Day + "-";

                            strDttm += dttm.Hour + ":";
                            strDttm += dttm.Minute + ":";
                            strDttm += dttm.Second + ".";
                            strDttm += dttm.Millisecond;
                            rowDetails.Add(col.ColName, strDttm);
                        }
                        else
                        {
                            rowDetails.Add(col.ColName, colValue.ToString());
                        }
                        //adding rowState in rowDeatils
                        if (rowStateFlag == 1 && colNo == dt.Cols.Count)
                        {
                            rowDetails.Add("rowstate", (int)dr.RowState);
                            rowStateFlag = 0;
                            colNo        = 0;
                        }
                    }
                    tableRecords.row.Add(rowDetails);
                }
                lstTableRecords.Add(tableRecords);
            }

            //converting the list into json format and return that string value
            string json = JsonConvert.SerializeObject(lstTableRecords);

            return(json);
        }