private FolderDTO ToFolderDTO(Folder folder, FoldersNotesHierarchy hierarchy)
        {
            var simpleFolder     = hierarchy.GetFolder(folder.Id);
            var parentFolder     = hierarchy.GetParentFolder(folder.Id);
            var parentFolderList = hierarchy.GetParentFolderList(folder.Id);

            return(new FolderDTO
            {
                Id = this._documentSession.ToLongId(folder.Id),
                Name = folder.Name,
                ParentFolder = new SimpleFolderDTO
                {
                    Id = this._documentSession.ToLongId(parentFolder.FolderId),
                    Name = parentFolder.FolderName
                },
                ParentFolderHierarchy = parentFolderList.Select(f => new SimpleFolderDTO
                {
                    Id = this._documentSession.ToLongId(f.FolderId),
                    Name = f.FolderName
                }).ToList(),
                SubFolders = simpleFolder.SubFolders.Select(f => new SimpleFolderDTO
                {
                    Id = this._documentSession.ToLongId(f.FolderId),
                    Name = f.FolderName
                }).ToList(),
                Notes = simpleFolder.Notes.Select(f => new SimpleNoteDTO
                {
                    Id = this._documentSession.ToLongId(f.NoteId),
                    Title = f.NoteTitle
                }).ToList(),
            });
        }
        internal static async Task <FoldersNotesHierarchy> LoadOrCreateHierarchyAsync(this IAsyncDocumentSession self, string userId, CancellationToken cancellationToken = default(CancellationToken))
        {
            var hierarchy = await self.LoadAsync <FoldersNotesHierarchy>(FoldersNotesHierarchy.CreateId(userId), cancellationToken);

            if (hierarchy == null)
            {
                hierarchy = new FoldersNotesHierarchy {
                    UserId = userId
                };
                await self.StoreAsync(hierarchy, cancellationToken);
            }

            return(hierarchy);
        }
示例#3
0
        private NoteDTO ToNoteDTO(Note note, FoldersNotesHierarchy hierarchy)
        {
            if (note == null)
            {
                return(null);
            }

            var folder = hierarchy.GetNoteFolder(note.Id);

            return(new NoteDTO
            {
                Id = this._documentSession.ToLongId(note.Id),
                Title = note.Title,
                Content = note.Content,
                Folder = folder == null
                    ? null
                    : new SimpleFolderDTO
                {
                    Id = this._documentSession.ToLongId(folder.FolderId),
                    Name = folder.FolderName
                }
            });
        }
示例#4
0
 private static void CustomizeDocumentStore(DocumentStore documentStore)
 {
     documentStore.Conventions.RegisterAsyncIdConvention <FoldersNotesHierarchy>((databaseName, commands, entity) =>
                                                                                 Task.FromResult(FoldersNotesHierarchy.CreateId(entity.UserId)));
 }