public bool Remove(JobRole jobRole) { try { Func <JOB_ROLE, bool> selector = jr => jr.Job_Role_ID == jobRole.Id; Func <COMPANY_JOB_ROLE, bool> predicate = cjr => cjr.Job_Role_ID == jobRole.Id && cjr.Company_ID == 2; CompanyJobRole companyJobRole = companyJobRoleLogic.GetModelBy(predicate); if (companyJobRole == null || companyJobRole.Id <= 0) { throw new Exception("Corresponding object not found! Please try again."); } bool removed = false; using (TransactionScope transaction = new TransactionScope()) { if (companyJobRoleLogic.Remove(companyJobRole)) { repository.SaveChanges(); removed = base.Remove(selector); } repository.SaveChanges(); transaction.Complete(); } return(removed); } catch (Exception) { throw; } }
public override JobRole Add(JobRole jobRole) { try { if (jobRole == null) { throw new Exception("Job Role to be added cannot be null! Please try again"); } JobRole newJobRole = null; using (TransactionScope transaction = new TransactionScope()) { newJobRole = base.Add(jobRole); if (newJobRole == null || newJobRole.Id <= 0) { throw new Exception("Critical error occurred during Job Role creation! Please try again."); } CompanyJobRole companyJobRole = new CompanyJobRole(); companyJobRole.Company = new Company() { Id = 2 }; companyJobRole.JobRole = newJobRole; CompanyJobRole newCompanyJobRole = companyJobRoleLogic.Add(companyJobRole); if (newCompanyJobRole == null || newCompanyJobRole.Id <= 0) { throw new Exception("Job Role (" + jobRole.Name + ") could not be successfully added!"); } transaction.Complete(); } return(newJobRole); } catch (Exception) { throw; } }