//Dùng để thao tác đơn lẻ với S35 public bool SaveS35Menu(List <S35Menu> saveData) { using (DbContextTransaction transaction = Context.Database.BeginTransaction()) { try { long seq = S35MenuDAO.GetS35MenuSEQ(); foreach (S35Menu data in saveData) { switch (data.Status) { // Add new case ModifyMode.Insert: seq++; data.S35MenuID = GenerateID.S35MenuID(seq); this.S35MenuDAO.InsertS35Menu(data); break; // Update case ModifyMode.Update: this.S35MenuDAO.UpdateS35MenuVoucher(data); // this.S35MenuDAO.UpdateS35Menu(data); break; // Delete case ModifyMode.Delete: this.S35MenuDAO.DeleteS35Menu(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 S35MenuController() { this.Context = new BSContext(); this.S35MenuDAO = new S35MenuDAO(this.Context); this.S35MenuLogic = new S35MenuLogic(this.Context); }
public bool SaveS35MenuFull(S35Menu data, List <S35MenuDetail> detailData) { using (DbContextTransaction transaction = Context.Database.BeginTransaction()) { try { long seq = S35MenuDAO.GetS35MenuSEQ(); long seqdetail = S35MenuDetailDAO.GetS35MenuDetailSEQ(); 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.S35MenuID = GenerateID.S35MenuID(seq); this.S35MenuDAO.InsertS35Menu(data); if (detailData.Count > 0) { //thêm S35MenuDetail #region insert S35MenuDetail foreach (S35MenuDetail S35MenuDetail in detailData) { if (string.IsNullOrEmpty(S35MenuDetail.S35MenuDetailID)) { seqdetail++; S35MenuDetail.S35MenuDetailID = GenerateID.S35MenuDetailID(seqdetail); S35MenuDetail.S35MenuID = data.S35MenuID; S35MenuDetail.CompanyID = data.CompanyID; this.S35MenuDetailDAO.InsertS35MenuDetail(S35MenuDetail); } } #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.S35MenuDAO.UpdateS35Menu(data); if (detailData.Count > 0) { foreach (S35MenuDetail 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.S35MenuDetailID)) { this.S35MenuDetailDAO.UpdateS35MenuDetail(S35MenuDetail); } #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.S35MenuDetailID)) { seqdetail++; S35MenuDetail.S35MenuDetailID = GenerateID.S35MenuDetailID(seqdetail); S35MenuDetail.S35MenuID = data.S35MenuID; S35MenuDetail.CompanyID = data.CompanyID; this.S35MenuDetailDAO.InsertS35MenuDetail(S35MenuDetail); } #endregion insert S35MenuDetail khi thêm detail mới cho S35 đã có sẵn } } } break; // Delete case ModifyMode.Delete: this.S35MenuDAO.DeleteS35Menu(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 (S35MenuDetail 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.S35MenuDetailID)) { this.S35MenuDetailDAO.UpdateS35MenuDetail(S35MenuDetail); } #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.S35MenuDetailID)) { seqdetail++; S35MenuDetail.S35MenuDetailID = GenerateID.S35MenuDetailID(seqdetail); S35MenuDetail.S35MenuID = data.S35MenuID; S35MenuDetail.CompanyID = data.CompanyID; this.S35MenuDetailDAO.InsertS35MenuDetail(S35MenuDetail); } #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); } } }