public async Task <IActionResult> Delete(int?id) { if (id == null) { return(IdNotProvidedBadRequest(logger.Here())); } Department department = await departmentService.FindDepartmentAsync(id); if (department == null) { return(ModelNotFound(logger.Here(), id)); } //check if this department does not have any employee bool isEmptyDepartment = await departmentService.HasNoEmployeeAsync(department.DepartmentId); if (isEmptyDepartment == false) { return(ErrorResponseOk(logger.Here(), $"Delete department failed. Cannot delete department that has employees associated with it. DepartmentId: {department.DepartmentId}")); } //delete department db.Departments.Remove(department); await db.SaveChangesAsync(); logger.Here().Information("Deleted department successfully"); //map to delete response EntityDeleteResponse entityDeleteResponse = DepartmentMapper.MapFromDepartmentToEntityDeleteResponse(department); return(Ok(entityDeleteResponse)); }
//delete department public static EntityDeleteResponse MapFromDepartmentToEntityDeleteResponse(Department department) { EntityDeleteResponse entityDeleteResponse = new EntityDeleteResponse { Id = department.DepartmentId, Entity = EntityType.Department, IsDeleted = true, IsSuccessful = true }; return(entityDeleteResponse); }