Exemple #1
0
        public dynamic TakeSnapshot(ContentItem contentItem)
        {
            var part = contentItem.As <FolderPart>();

            if (part == null)
            {
                return(null);
            }

            FolderPartRecord oldData = new FolderPartRecord();

            oldData.Title     = part.Record.Title;
            oldData.Parent_Id = part.Record.Parent_Id;

            return(oldData);
        }
Exemple #2
0
        public IEnumerable <ActivityStreamChangeItem> GetChangesDescriptions(ActiviyStreamWriterContext context)
        {
            if (!this.CanApply(context))
            {
                return(null);
            }

            List <string> changes = new List <string>();

            FolderPartRecord old      = context.Snapshot != null ? (context.Snapshot as FolderPartRecord) : null;
            FolderPartRecord newValue = (context.ContentItem.As <FolderPart>()).Record;

            if (old == null)
            {
                return(null);
            }

            // change Title
            if (old.Title != newValue.Title)
            {
                string newTitleString = !string.IsNullOrEmpty(newValue.Title) ? newValue.Title : this.T("Empty").Text;
                newTitleString = string.Format(
                    CultureInfo.CurrentUICulture,
                    T("changed the Title to: '{0}'").Text,
                    newTitleString);

                changes.Add(newTitleString);
            }

            // change Parent
            if (old.Parent_Id != null && newValue.Parent_Id == null)
            {
                changes.Add(T("changes the folder to a root folder").Text);
            }
            else if (old.Parent_Id == null && newValue.Parent_Id != null)
            {
                var parentFolder = this.folderService.GetFolder(newValue.Parent_Id.Value);
                changes.Add(T("move the folder to {0}", parentFolder.Record.Title).Text);
            }
            else if (old.Parent_Id != null && newValue.Parent_Id != null && old.Parent_Id != newValue.Parent_Id)
            {
                var parentFolder = this.folderService.GetFolder(newValue.Parent_Id.Value);
                changes.Add(T("move the folder to {0}", parentFolder.Record.Title).Text);
            }

            return(changes.Select(c => new ActivityStreamChangeItem(c)));
        }
        public IEnumerable <ActivityStreamChangeItem> GetChangesDescriptions(ActiviyStreamWriterContext context)
        {
            if (!this.CanApply(context))
            {
                yield break;
            }

            var attachToFolderPart = context.ContentItem.As <AttachToFolderPart>();

            FolderPartRecord newFolder = attachToFolderPart.Record.Folder;
            FolderPartRecord oldFolder = context.Snapshot != null ? context.Snapshot.Folder : null;

            if (oldFolder == null && newFolder == null)
            {
                yield break;
            }
            else if (oldFolder == null && newFolder != null)
            {
                newFolder = this.folderService.GetFolder(newFolder.Id).As <FolderPart>().Record;
                string change = T("{0} is added to the folder '{1}'", contentItemDescriptorManager.GetDescription(context.ContentItem), newFolder.Title).Text;
                yield return(new ActivityStreamChangeItem(change));
            }
            else if (oldFolder != null && newFolder == null)
            {
                oldFolder = this.folderService.GetFolder(oldFolder.Id).As <FolderPart>().Record;
                string change = T("{0} is detached from the folder '{1}'", contentItemDescriptorManager.GetDescription(context.ContentItem), oldFolder.Title).Text;
                yield return(new ActivityStreamChangeItem(change));
            }
            else if (oldFolder != null && newFolder != null && oldFolder.Id != newFolder.Id)
            {
                var oldFolderContentItem = this.folderService.GetFolder(oldFolder.Id);
                var newFolderContentItem = this.folderService.GetFolder(newFolder.Id);

                string change = T("{0} is detached from the folder '{1}'", contentItemDescriptorManager.GetDescription(context.ContentItem), oldFolderContentItem.Record.Title).Text;
                yield return(new ActivityStreamChangeItem(change, true, oldFolderContentItem.ContentItem.Id, oldFolderContentItem.ContentItem.VersionRecord.Id));

                change = T("{0} is added to the folder '{1}'", contentItemDescriptorManager.GetDescription(context.ContentItem), newFolderContentItem.Record.Title).Text;
                yield return(new ActivityStreamChangeItem(change, true, newFolderContentItem.ContentItem.Id, newFolderContentItem.ContentItem.VersionRecord.Id));
            }
        }