Dependency Injection means your service should not create the IncidentVotingService, neither have a hardcoded reference to IncidentLoaderFactory. They should be injected, to allow you to replace them with mock object during tests.
The IncidentService could look like this:
public class IncidentService {
private IIncidentLoaderFactory factory;
private IIncidentVotingService votingService;
public IncidentService (IIncidentLoaderFactory factory, IIncidentVotingService votingService){
this.factory = factory;
this.votingService = service;
}
public Incident GetIncident(string incidentId) {
// ** the bulk of the data comes from one of several (two in this case) sources
IIncidentLoader loader = factory.GetIncidentLoader(incidentId);
var incident = loader.GetIncident(incidentId);
// ** however, there is some data in a 3rd source that applies to all incidents
incident.NumberVotes = votingService.GetNumberVotes(incidentId);
return incident;
}
}