/**
  * Private helpers:
  *  - Populate bookmarks
  *  [Transforms bookmark models into BookmarkBox which have additional attribute to deremine if the bookmark checkbox on UI hast to be checked]
  */
 private void PopulateBookmarks()
 {
     foreach (Bookmark bookmark in (new BookmarkRepo()).LoadBookmarks(User, true))
     {
         BookmarkBoxes.Add(new BookmarkBox(bookmark));
     }
 }
        public void Create(object input = null)
        {
            try
            {
                // 1. Add new bookmark to database
                string trimmedName     = Name.Trim();
                bool   duplicate_check = (new BookmarkRepo()).AddBookmark(trimmedName, Global, User);

                // 1.1 Track change
                BookmarkInfo info = new BookmarkInfo(trimmedName, User);
                new Tracker(User).TrackCreate <BookmarkInfo>(info);

                // 2. Refresh Bookmarks collection
                BookmarkBoxes.Clear();
                PopulateBookmarks();
                Name = "";

                // 3. Hide detailed view
                //Win.Height = _initialHeight;
                CreateVisibility      = Visibility.Collapsed;
                NewBookmarkVisibility = Visibility.Visible;

                // 4. Check bookmark boxes
                CheckBookmarkBoxes();

                Global = 0;

                if (!duplicate_check)
                {
                    _dialogService.OpenDialog(new DialogOkViewModel("This bookmark already exists.", "Warning", DialogType.Warning));
                }
            }
            catch (Exception e)
            {
                new BugTracker().Track("Bookmark Manager", "Create Bookmark", e.Message, e.StackTrace);
                _dialogService.OpenDialog(new DialogOkViewModel("Something went wrong.", "Error", DialogType.Error));
            }
        }