private bool TryToUseExistingCandidate([NotNull] Requirements requirements, [NotNull, ItemNotNull] IEnumerable <SelectionCandidate> suitableCandidates, [NotNull] ImplementationSelection selection)
{
if (!suitableCandidates.Contains(selection))
{
return(false);
}
if (selection.ContainsCommand(requirements.Command))
{
return(true);
}
var command = selection.AddCommand(requirements, from: _candidateProvider.LookupOriginalImplementation(selection));
return(TryToSolveCommand(command, requirements));
}