//Dùng để thao tác đơn lẻ với S35 public bool SaveS35MenuSanXuat(List <S35MenuSanXuat> saveData) { using (DbContextTransaction transaction = Context.Database.BeginTransaction()) { try { long seq = S35MenuSanXuatDAO.GetS35MenuSanXuatSEQ(); foreach (S35MenuSanXuat data in saveData) { switch (data.Status) { // Add new case ModifyMode.Insert: seq++; data.S35MenuSXID = GenerateID.S35MenuSXID(seq); this.S35MenuSanXuatDAO.InsertS35MenuSanXuat(data); break; // Update case ModifyMode.Update: // this.S35MenuSanXuatDAO.UpdateS35MenuVoucher(data); // this.S35MenuDAO.UpdateS35Menu(data); break; // Delete case ModifyMode.Delete: this.S35MenuSanXuatDAO.DeleteS35MenuSanXuat(data); //Khi delete S35Menu thì DB sẽ tự delete S35MenuDetail break; } } transaction.Commit(); return(true); } catch (Exception ex) { transaction.Rollback(); BSLog.Logger.Error(ex.Message); return(false); } } }
public bool SaveS35MenuSanXuatFull(S35MenuSanXuat data, List <S35MenuDetailSanXuat> detailData) { using (DbContextTransaction transaction = Context.Database.BeginTransaction()) { try { long seq = S35MenuSanXuatDAO.GetS35MenuSanXuatSEQ(); long seqdetail = S35MenuDetailSanXuatDAO.GetS35MenuDetailSanXuatSEQ(); switch (data.Status) { // Thêm S35 mới thì sẽ thực hiện thêm Detail mới nếu ListDetail có giá trị case ModifyMode.Insert: seq++; data.S35MenuSXID = GenerateID.S35MenuSXID(seq); this.S35MenuSanXuatDAO.InsertS35MenuSanXuat(data); data.Status = ModifyMode.None; if (detailData.Count > 0) { //thêm S35MenuDetail #region insert S35MenuDetail foreach (S35MenuDetailSanXuat S35MenuDetail in detailData) { if (string.IsNullOrEmpty(S35MenuDetail.S35MenuDetailSXID)) { seqdetail++; S35MenuDetail.S35MenuDetailSXID = GenerateID.S35MenuDetailSXID(seqdetail); S35MenuDetail.S35MenuSXID = data.S35MenuSXID; S35MenuDetail.CompanyID = data.CompanyID; this.S35MenuDetailSanXuatDAO.InsertS35MenuDetailSanXuat(S35MenuDetail); S35MenuDetail.Status = ModifyMode.None; } } #endregion insert S35MenuDetail } break; //Khi update S35 thì sẽ thực hiện update S35, Thêm mới hoặc update S35 Detail case ModifyMode.Update: this.S35MenuSanXuatDAO.UpdateS35MenuSanXuat(data); data.Status = ModifyMode.None; if (detailData.Count > 0) { foreach (S35MenuDetailSanXuat S35MenuDetail in detailData) { //thực hiện nhiệm vụ update với các chi tiết S35 đã thuộc S35 if (S35MenuDetail.Status == ModifyMode.Update) { #region Update dataDetail if (!string.IsNullOrEmpty(S35MenuDetail.S35MenuDetailSXID)) { this.S35MenuDetailSanXuatDAO.UpdateS35MenuDetailSanXuat(S35MenuDetail); S35MenuDetail.Status = ModifyMode.None; } #endregion Update dataDetail } else if (S35MenuDetail.Status == ModifyMode.Insert) { //thêm mới S35MenuDetail vào S35 #region insert S35MenuDetail khi thêm detail mới cho S35 đã có sẵn if (string.IsNullOrEmpty(S35MenuDetail.S35MenuDetailSXID)) { seqdetail++; S35MenuDetail.S35MenuDetailSXID = GenerateID.S35MenuDetailSXID(seqdetail); S35MenuDetail.S35MenuSXID = data.S35MenuSXID; S35MenuDetail.CompanyID = data.CompanyID; this.S35MenuDetailSanXuatDAO.InsertS35MenuDetailSanXuat(S35MenuDetail); S35MenuDetail.Status = ModifyMode.None; } #endregion insert S35MenuDetail khi thêm detail mới cho S35 đã có sẵn } } } break; // Delete case ModifyMode.Delete: this.S35MenuSanXuatDAO.DeleteS35MenuSanXuat(data); //Khi delete S35Menu thì DB sẽ tự delete S35MenuDetail break; default: //Khi S35Menu không thực thêm, xóa, sửa thì có thể sẽ có thay đổi giá trị S35Detail if (detailData.Count > 0) { foreach (S35MenuDetailSanXuat S35MenuDetail in detailData) { //thực hiện nhiệm vụ update với các chi tiết S35 đã thuộc S35 if (S35MenuDetail.Status == ModifyMode.Update) { #region Update dataDetail if (!string.IsNullOrEmpty(S35MenuDetail.S35MenuDetailSXID)) { this.S35MenuDetailSanXuatDAO.UpdateS35MenuDetailSanXuat(S35MenuDetail); S35MenuDetail.Status = ModifyMode.None; } #endregion Update dataDetail } else if (S35MenuDetail.Status == ModifyMode.Insert) { //thêm mới S35MenuDetail vào S35 #region insert S35MenuDetail khi thêm detail mới cho S35 đã có sẵn if (string.IsNullOrEmpty(S35MenuDetail.S35MenuDetailSXID)) { seqdetail++; S35MenuDetail.S35MenuDetailSXID = GenerateID.S35MenuDetailSXID(seqdetail); S35MenuDetail.S35MenuSXID = data.S35MenuSXID; S35MenuDetail.CompanyID = data.CompanyID; this.S35MenuDetailSanXuatDAO.InsertS35MenuDetailSanXuat(S35MenuDetail); S35MenuDetail.Status = ModifyMode.None; } #endregion insert S35MenuDetail khi thêm detail mới cho S35 đã có sẵn } } } break; } transaction.Commit(); return(true); } catch (Exception ex) { transaction.Rollback(); BSLog.Logger.Error(ex.Message); return(false); } } }