Example #1
0
        // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
        // Notebooks

        private void SortNotebooks(SortDialog.Sortings sorting, SortDialog.Directions direction)
        {
            #region Notes

            /*
             * <one:Notebook name="Personal" nickname="Personal" ID="" path="" />
             */
            #endregion Notes

            logger.StartClock();

            using (var one = new OneNote())
            {
                var root = one.GetNotebooks();
                var ns   = one.GetNamespace(root);

                // nickname is display name whereas name is the folder name
                var key = sorting == SortDialog.Sortings.ByName
                                        ? "nickname"
                                        : "lastModifiedTime";

                IEnumerable <XElement> books;
                if (direction == SortDialog.Directions.Descending)
                {
                    books = root.Elements(ns + "Notebook")
                            .OrderByDescending(s => s.Attribute(key).Value);
                }
                else
                {
                    books = root.Elements(ns + "Notebook")
                            .OrderBy(s => s.Attribute(key).Value);
                }

                root.ReplaceNodes(books);

                //logger.WriteLine(root.ToString());
                one.UpdateHierarchy(root);
            }

            logger.WriteTime(nameof(SortNotebooks));
        }