private static bool IsSaveAction(SaveContentEventArgs args, out ContentVersion published) { if (args.Transition.CurrentStatus == VersionStatus.CheckedOut && args.Transition.NextStatus == VersionStatus.CheckedOut) { published = VersionRepository.LoadPublished(args.ContentLink); return(true); } published = null; return(false); }
private void FaceImagePublishCreateEvent(object sender, ContentEventArgs e) { ContentData content = e.Content as ContentData; SaveContentEventArgs savingEvent = e as SaveContentEventArgs; if ((savingEvent.Action & EPiServer.DataAccess.SaveAction.CheckOut) != EPiServer.DataAccess.SaveAction.Default || content == null || ContentReference.IsNullOrEmpty(e.ContentLink)) { return; } Dictionary <string, EPiFaceImageAttribute> faceImageProperties = ListFaceImageProperties(e); if (faceImageProperties.Count == 0) { return; } ContentAssetFolder contentAssetFolder = _contentAssetHelperInj.Service.GetOrCreateAssetFolder(e.ContentLink); if (contentAssetFolder == null) { return; } foreach (var faceImagePropertyDef in faceImageProperties) { ContentReference imageReference = content.GetPropertyValue <ContentReference>(faceImagePropertyDef.Key); if (ContentReference.IsNullOrEmpty(imageReference)) { continue; } ImageData image; if (!_contentLoaderInj.Service.TryGet(imageReference, out image) || image.GetOriginalType() == typeof(FaceImageData) || image.BinaryData == null) { continue; } Image imageDetails = Image.FromStream(new MemoryStream(image.BinaryData.ReadAllBytes())); if (imageDetails == null) { continue; } byte[] faceResizedImage; if (!TryToDetectFaceAndResizeImage(faceImagePropertyDef, image, imageDetails, out faceResizedImage)) { continue; } ContentReference faceImageId = CreateFaceMediaFile(contentAssetFolder, image, faceResizedImage); content[faceImagePropertyDef.Key] = faceImageId; } }
private static void HandleSaveEvent(SaveContentEventArgs args) { if (IsPublishAction(args)) { Logger.Debug("Publish-event, update index"); EPiIndexer.Update(args.Content); return; } if (IsPublishedToCheckedOutAction(args)) { Logger.Debug("Save-event, previously published, do nothing"); return; } if (IsSaveAction(args, out ContentVersion published)) { if (published == null) { Logger.Debug("Save-event, previously unpublished, update index"); EPiIndexer.Update(args.Content); return; } Logger.Debug("Save-event, previously published, do nothing"); return; } // Create if (args.Transition.CurrentStatus == VersionStatus.NotCreated) { Logger.Debug("Create-event, do nothing"); return; } Logger.Information($"Save-event was not handled. Action {args.Action}, transition {args.Transition.CurrentStatus}=>{args.Transition.NextStatus}"); }
private static bool IsPublishAction(SaveContentEventArgs args) { return(args.MaskedAction == SaveAction.Publish && args.Transition.NextStatus == VersionStatus.Published); }
private static bool IsPublishedToCheckedOutAction(SaveContentEventArgs args) { return(args.Transition.CurrentStatus == VersionStatus.Published && args.Transition.NextStatus == VersionStatus.CheckedOut); }