private int NonActivateSetting(tb_workflowSettingHdr entiti, int exceptId) { int result = 0; entiti.Id = exceptId; string sSql = "UPDATE tb_workflowSettingHdr SET IsActive=false where TypeID=@TypeID AND ID <> @Id"; result = InsertOrUpdate <tb_workflowSettingHdr>(sSql, entiti); return(result); }
public int Insert(WorkflowSettingHeader wfhdr, List <WorkflowSettingModel> lsmodel, out string errMsg) { errMsg = string.Empty; tb_workflowSetting wfdetil = new tb_workflowSetting(); imap = config.CreateMapper(); int _hdrId = 0; using (TDMDBEntities context = new TDMDBEntities()) { using (var transaction = context.Database.BeginTransaction()) { try { var _cekstillEmpty = context.tb_workflowSettingHdr.Count(); tb_workflowSettingHdr _entHdr = new tb_workflowSettingHdr(); _entHdr.ApprovalLevel = wfhdr.ApprovalLevel; _entHdr.Version = wfhdr.Version; _entHdr.TypeID = wfhdr.TypeID; _entHdr.CreatedBy = wfhdr.CreatedBy; _entHdr.CreatedDate = DateTime.Now; _entHdr.IsActive = true; context.tb_workflowSettingHdr.Add(_entHdr); result_affected += context.SaveChanges(); _hdrId = _entHdr.Id; foreach (var item in lsmodel) { wfdetil = imap.Map <WorkflowSettingModel, tb_workflowSetting>(item); wfdetil.HeaderID = _hdrId; wfdetil.CreatedBy = "SYSTEM"; wfdetil.CreatedDate = DateTime.Now; context.tb_workflowSetting.Add(wfdetil); result_affected += context.SaveChanges(); } if (_cekstillEmpty > 0) { if (NonActivateSetting(_entHdr, _hdrId) > 0) { transaction.Commit(); } else { transaction.Rollback(); } } else { transaction.Commit(); } } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } } return(result_affected); }