public override Photo VisitPhoto(Photo photo, AnalyzerExecutionContext executionContext) { if (photo.Tag(Constants.Namespace, Constants.HashMetadataKey) == null) { var streamFeature = Source.Feature<IPhotoStreamFeature>(); string value = null; using (var photoStream = streamFeature.GetStream(photo)) { value = CreateImageHash(photoStream); } var tag = new Tag(Constants.Namespace, Constants.HashMetadataKey, value); photo = photo.WithTag(tag); } return photo; }
public override Photo VisitPhoto(Photo photo, AnalyzerExecutionContext executionContext) { var key = MakeRelativePath(_container.Id + Path.DirectorySeparatorChar, photo.Id); var containerJson = _meta.Where(x => _container.Id.StartsWith(x.Key)).Select(x => x.Value).FirstOrDefault(); if (containerJson != null) { var photoJson = containerJson[key]; if (photoJson != null) { var tags = photoJson.Select(tagJson => new Tag(tagJson["ns"].ToString(), tagJson["name"].ToString(), tagJson["value"].ToString())); foreach (var tag in tags) { photo = photo.WithTag(tag); } } } return photo; }