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));
        }
示例#2
0
        //delete department
        public static EntityDeleteResponse MapFromDepartmentToEntityDeleteResponse(Department department)
        {
            EntityDeleteResponse entityDeleteResponse = new EntityDeleteResponse
            {
                Id           = department.DepartmentId,
                Entity       = EntityType.Department,
                IsDeleted    = true,
                IsSuccessful = true
            };

            return(entityDeleteResponse);
        }