hi all
I am trying to move a node to another folder, is checkbox is checked or unchecked. But getting a server error, I can't figure out.
Code:
public UmbracoEventHandlers()
{
ContentService.Saving += ContentService_Saving;
ContentService.Saved += ContentService_Saved;
ContentService.Publishing += ContentService_Publishing;
}
void ContentService_Saving(IContentService sender, SaveEventArgs<IContent> e) {
foreach (IContent item in e.SavedEntities)
{
if (item.HasProperty("messageArchived"))
{
if (item.Properties["messageArchived"].IsDirty())
{
var isArchived = Convert.ToBoolean(item.Properties["messageArchived"].Value);
var contentService = ApplicationContext.Current.Services.ContentService;
if (isArchived)
{
var archiveContent = item.Parent();
IContent archiveMessageFolderContent = null;
foreach (IContent child in archiveContent.Children())
{
if (child.ContentType.Alias == "messageArchive")
{
archiveMessageFolderContent = child;
break;
}
}
contentService.Move(item, archiveMessageFolderContent.Id);
library.RefreshContent();
}
else
{
var archiveContent = item.Parent().Parent();
contentService.Move(item, archiveContent.Id);
}
}
}
}
}
void ContentService_Saved(IContentService sender, SaveEventArgs<IContent> e)
{
}
void ContentService_Publishing(IPublishingStrategy sender, PublishEventArgs<IContent> e)
{
}
Error:
Received an error from the server
An error occurred
Object reference not set to an instance of an object.
Exception Details:
System.NullReferenceException: Object reference not set to an instance of an object.
Stacktrace:
at websiteumbracoext.UmbracoEventHandlers.ContentServiceSaving(IContentService sender, SaveEventArgs1 e) in classes\UmbracoEventHandlers.cs:line 59
at Umbraco.Core.Events.ScopeEventDispatcherBase.DispatchCancelable[TSender,TArgs](TypedEventHandler
2 eventHandler, TSender sender, TArgs args, String eventName)
at Umbraco.Core.Services.ContentService.SaveAndPublishDo(IContent content, Int32 userId, Boolean raiseEvents)
at Umbraco.Core.Services.ContentService.PerformMove(IContent content, Int32 parentId, Int32 userId, ICollection1 moveInfo)
at Umbraco.Core.Services.ContentService.Move(IContent content, Int32 parentId, Int32 userId)
at website_umbracoext.UmbracoEventHandlers.ContentService_Saving(IContentService sender, SaveEventArgs
1 e) in classes\UmbracoEventHandlers.cs:line 59
at Umbraco.Core.Events.ScopeEventDispatcherBase.DispatchCancelable[TSender,TArgs](TypedEventHandler2 eventHandler, TSender sender, TArgs args, String eventName)
at Umbraco.Core.Services.ContentService.SaveAndPublishDo(IContent content, Int32 userId, Boolean raiseEvents)
at Umbraco.Core.Services.ContentService.Umbraco.Core.Services.IContentServiceOperations.SaveAndPublish(IContent content, Int32 userId, Boolean raiseEvents)
at Umbraco.Core.Services.ContentService.SaveAndPublishWithStatus(IContent content, Int32 userId, Boolean raiseEvents)
at Umbraco.Web.Editors.ContentController.PostSave(ContentItemSave contentItem)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary
2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.