示例#1
0
        /// <summary>
        /// データ行を揚り依頼エンティティに変換して返す
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        private T04_AGRWK convertDataRowToT04_AGRWK_Entity(DataRow row)
        {
            DataRowVersion ver = row.RowState == DataRowState.Deleted ? DataRowVersion.Original : DataRowVersion.Current;
            T04_AGRWK      awk = new T04_AGRWK();

            awk.SEQ    = AppCommon.LongParse(row["SEQ", ver].ToString());
            awk.依頼日    = AppCommon.ObjectToDate(row["依頼日", ver]) != null ? (DateTime)AppCommon.ObjectToDate(row["依頼日", ver]) : DateTime.Now;
            awk.取引先コード = AppCommon.IntParse(row["取引先コード", ver].ToString());
            awk.枝番     = AppCommon.IntParse(row["枝番", ver].ToString());
            awk.品番コード  = AppCommon.IntParse(row["品番コード", ver].ToString());
            awk.依頼数    = AppCommon.IntParse(row["依頼数", ver].ToString());
            awk.仕上数    = AppCommon.IntParse(row["仕上数", ver].ToString());

            return(awk);
        }
示例#2
0
        /// <summary>
        /// 揚り依頼情報の登録・更新をおこなう
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="userId"></param>
        public void Update(DataSet ds, int userId)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
                {
                    DataTable dt = ds.Tables[0];

                    try
                    {
                        foreach (DataRow row in dt.Rows)
                        {
                            // 変更なしデータは処理しない
                            if (row.RowState == DataRowState.Unchanged)
                            {
                                continue;
                            }

                            T04_AGRWK wkData = convertDataRowToT04_AGRWK_Entity(row);

                            // 品番コード未設定データは処理しない
                            if (wkData.品番コード == 0)
                            {
                                continue;
                            }

                            // 揚り依頼データを参照
                            var agrwk =
                                context.T04_AGRWK.Where(w => w.SEQ == wkData.SEQ)
                                .FirstOrDefault();

                            if (agrwk == null || row.RowState == DataRowState.Added)
                            {
                                T04_AGRWK awk = new T04_AGRWK();
                                awk.SEQ    = wkData.SEQ;
                                awk.依頼日    = wkData.依頼日;
                                awk.取引先コード = wkData.取引先コード;
                                awk.枝番     = wkData.枝番;
                                awk.品番コード  = wkData.品番コード;
                                awk.依頼数    = wkData.依頼数;
                                awk.仕上数    = wkData.仕上数;

                                awk.登録者    = userId;
                                awk.登録日時   = DateTime.Now;
                                awk.最終更新者  = userId;
                                awk.最終更新日時 = DateTime.Now;

                                context.T04_AGRWK.ApplyChanges(awk);
                            }
                            else if (row.RowState == DataRowState.Deleted)
                            {
                                agrwk.削除者  = userId;
                                agrwk.削除日時 = DateTime.Now;

                                agrwk.AcceptChanges();
                            }
                            else if (row.RowState == DataRowState.Modified)
                            {
                                agrwk.依頼日    = wkData.依頼日;
                                agrwk.取引先コード = wkData.取引先コード;
                                agrwk.枝番     = wkData.枝番;
                                agrwk.品番コード  = wkData.品番コード;
                                agrwk.依頼数    = wkData.依頼数;
                                agrwk.仕上数    = wkData.仕上数;
                                agrwk.最終更新者  = userId;
                                agrwk.最終更新日時 = DateTime.Now;

                                agrwk.AcceptChanges();
                            }
                        }

                        // 変更状態を確定
                        context.SaveChanges();

                        tran.Commit();
                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();
                        throw ex;
                    }
                }
            }
        }