private void ContentService_Saving(IContentService sender, ContentSavingEventArgs e)
        {
            contentService = sender;
            using (var scope = scopeProvider.CreateScope())
            {
                foreach (var node in e.SavedEntities)
                {
                    var parentNodeId = node.ParentId;


                    // If the document type is a resourceItem
                    if (node.ContentType.Alias == BlogPage.ModelTypeAlias)
                    {
                        string parentModelTypeAlias  = String.Empty;
                        string modelTypeAlias        = String.Empty;
                        string datePropertyTypeAlias = String.Empty;

                        switch (node.ContentType.Alias)
                        {
                        case BlogPage.ModelTypeAlias:
                            modelTypeAlias        = BlogPage.ModelTypeAlias;
                            parentModelTypeAlias  = Section.ModelTypeAlias;
                            datePropertyTypeAlias = BlogPage.GetModelPropertyType(r => r.PublishedDate).Alias;
                            break;

                        default:
                            throw new Exception("Error setting Model/Prop alias");
                        }


                        IContent monthFolder;

                        if (parentNodeId <= 0 && e.CanCancel)
                        {
                            e.CancelOperation(new EventMessage("Error", "Something went wrong with publishing the resource", EventMessageType.Error));
                        }

                        var currentParent = GetCurrentParent(parentNodeId);
                        var date          = node.GetValue <DateTime>(datePropertyTypeAlias);

                        if (date == DateTime.MinValue)
                        {
                            date = DateTime.Today;
                            node.SetValue(datePropertyTypeAlias, date);
                        }
                        var dateYear  = date.ToString("yyyy");
                        var dateMonth = date.ToString("MMMM");

                        if (currentParent.ContentType.Alias == DateFolder.ModelTypeAlias)
                        {
                            bool moveNode = VerifyOrMoveToCorrectLocation(scope, currentParent, dateYear, dateMonth, out monthFolder);

                            if (moveNode)
                            {
                                node.SetParent(monthFolder);
                            }
                        }

                        else if (currentParent.ContentType.Alias == parentModelTypeAlias)
                        {
                            monthFolder = MoveToCorrectLocation(scope, currentParent, dateYear, dateMonth);

                            node.SetParent(monthFolder);
                        }
                    }
                }
                scope.Complete();
            }
        }