/// <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); }
/// <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; } } } }