private static void AddSingularFeature <T>( AnnotateImageRequest request, AnnotateImageResponse fullResponse, AnnotateImageResponse actualResponse, FeatureType featureType, Func <AnnotateImageResponse, T> extractor, Action <AnnotateImageResponse, T> assigner) { if (request.Features.Any(f => f.Type == featureType)) { assigner(actualResponse, extractor(fullResponse)); } }
private static void AddRepeatedFeatures <T>( AnnotateImageRequest request, AnnotateImageResponse fullResponse, AnnotateImageResponse actualResponse, FeatureType featureType, Func <AnnotateImageResponse, RepeatedField <T> > extractor) { var featureRequest = request.Features.Where(f => f.Type == featureType).FirstOrDefault(); if (featureRequest == null) { return; } var maxEntries = featureRequest.MaxResults == 0 ? int.MaxValue : featureRequest.MaxResults; extractor(actualResponse).AddRange(extractor(fullResponse).Take(maxEntries)); }