public void DeleteCompany(dsClientCompanies deleteCompany) { var company = _context.ClientCompanies.FirstOrDefault(x => x.Id == deleteCompany.Id); if (company == null) { throw new Exception("Company not found"); } var users = _context.EmployeeTeams.Where(x => x.CompanyId == company.Id).ToList(); users.ForEach(user => { DeleteUserFromCompany(user); // first delete related users to this company }); var tasks = _context.Tasks.Where(x => x.ClientCompanyId == company.Id); _context.Tasks.RemoveRange(tasks); // delete tasks related to this company _context.SaveChanges(); _context.ClientCompanies.Attach(company); // delete this company _context.Remove(company); _context.SaveChanges(); }
public ActionResult DeleteCompany([FromQuery] dsClientCompanies company) { if (!authUser.is_admin) { return(NotFound()); } _repo.DeleteCompany(company); return(Ok()); }