private async void CategoryAdd_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(newCategory.Name) && newCategory.Id != default(Guid))
            {
                Category returnFocus = UsrNotes.NoteCategories.Where(x => x.Id == newCategory.Id).FirstOrDefault();
                CagegoryList.SelectedIndex = returnFocus == null ? -1 : UsrNotes.NoteCategories.LastIndexOf(returnFocus);
                return;
            }

            Category currentCat;

            if (newCategory.Id == default(Guid) ||
                UsrNotes.NoteCategories.Where(x => x.Id == newCategory.Id).FirstOrDefault()?.Name == newCategory.Name) //Не изменяя текста нажали Save
            {
                currentCat = await provider.CreateCategory(owner, "New Category");
            }
            else
            {
                currentCat = await provider.UpdateCategory(newCategory);
            }
            UsrNotes.UpdateCurrentCategoryList(await provider.GetUserCategories(owner));

            Category focusedCategory = UsrNotes.NoteCategories.Where(x => x.Id == currentCat.Id).FirstOrDefault();

            CagegoryList.SelectedIndex = focusedCategory == null ? -1 : UsrNotes.NoteCategories.LastIndexOf(focusedCategory);

            newCategory = new Category();
        }
        private async Task FillSelectedNotes(Guid NoteId)
        {
            Note slctedNote = Notes.Where(x => x.Id == NoteId).FirstOrDefault();

            if (slctedNote == null)
            {
                await NotesUpd();

                slctedNote = Notes.Where(x => x.Id == NoteId).FirstOrDefault();

                if (slctedNote == null)
                {
                    return;
                }

                UsrNotes.Setter(slctedNote);
            }
            else
            {
                UsrNotes.Setter(slctedNote);
            }

            UsrNotes.SetTitles(Notes);
            await ReturnFocuseToCategory();
        }
        private async Task FillNoteList()
        {
            await NotesUpd();

            UsrNotes = Notes.Select(x => new UserNotes(x)).FirstOrDefault();
            if (UsrNotes == null)
            {
                UsrNotes = new UserNotes(null);
            }
            DataContext = UsrNotes;
            UsrNotes.SetTitles(Notes);
            NoteListBox.SelectedIndex = NoteListBox.Items.Count > 0 ? NoteListBox.Items.Count - 1 : -1;
            await ReturnFocuseToCategory();
        }
        private async void NoteDelete_Click(object sender, RoutedEventArgs e)
        {
            await provider.DeleteNote(SelectedNote);

            await NotesUpd();

            Note _note = Notes.Select(x => x).FirstOrDefault();

            if (_note != null)
            {
                selectedNote = _note.Id;
            }
            UsrNotes.Setter(_note);
            UsrNotes.SetTitles(Notes);
            ReturnFocuseToNote();
        }
        private async Task RefreshNotes()
        {
            await NotesUpd();

            if (UsrNotes != null)
            {
                UsrNotes.Setter(Notes.FirstOrDefault());
                UsrNotes.SetTitles(Notes);
            }
            else
            {
                UsrNotes = Notes.Select(x => new UserNotes(x)).FirstOrDefault();
            }

            await ReturnFocuseToCategory();
        }
        private async void CategoryDelete_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(newCategory.Name) && newCategory.Id == default(Guid) && CagegoryList.SelectedIndex == -1)
            {
                Category returnFocus = UsrNotes.NoteCategories.Where(x => x.Id == newCategory.Id).FirstOrDefault();
                CagegoryList.SelectedIndex = returnFocus == null ? -1 : UsrNotes.NoteCategories.LastIndexOf(returnFocus);
                return;
            }
            Guid selectedCategory = UsrNotes.NoteCategories[CagegoryList.SelectedIndex].Id;


            await provider.DeleteCategory(selectedCategory);

            UsrNotes.UpdateCurrentCategoryList(await provider.GetUserCategories(owner));

            CagegoryList.SelectedIndex = 0;

            newCategory = new Category();
        }
        private async void SaveBtn_Click(object sender, RoutedEventArgs e)
        {
            Category returnFocus;

            if (string.IsNullOrEmpty(newCategory.Name) && newCategory.Id == default(Guid) && CagegoryList.SelectedIndex == -1)
            {
                returnFocus = UsrNotes.NoteCategories.Where(x => x.Id == newCategory.Id).FirstOrDefault();
                CagegoryList.SelectedIndex = returnFocus == null ? -1 : UsrNotes.NoteCategories.LastIndexOf(returnFocus);
            }
            if (CagegoryList.SelectedIndex == -1)
            {
                return;
            }

            Guid selectedCategory            = UsrNotes.NoteCategories[CagegoryList.SelectedIndex].Id;
            IEnumerable <Category> _category = ((IEnumerable <Category>)UsrNotes.NoteCategories).Where(x => x.Id == selectedCategory);

            if (_category == null)
            {
                return;
            }

            Note savedNote = new Note
            {
                Id          = UsrNotes.NoteId,
                Content     = UsrNotes.NoteContent,
                Title       = UsrNotes.NoteTitle,
                DateChanged = DateTime.Now,
                Categories  = _category
            };

            savedNote = await provider.UpdateNote(savedNote);

            selectedNote = savedNote.Id;
            UsrNotes.Setter(savedNote);
            await NotesUpd();

            UsrNotes.SetTitles(Notes);
            returnFocus = UsrNotes.NoteCategories.Where(x => x.Id == selectedCategory).FirstOrDefault();
            CagegoryList.SelectedIndex = returnFocus == null ? -1 : UsrNotes.NoteCategories.LastIndexOf(returnFocus);
        }