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); }
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 } }); }
private static void CustomizeDocumentStore(DocumentStore documentStore) { documentStore.Conventions.RegisterAsyncIdConvention <FoldersNotesHierarchy>((databaseName, commands, entity) => Task.FromResult(FoldersNotesHierarchy.CreateId(entity.UserId))); }