private void clearTagsIfNeeded(long currentWorkspaceId, long newWorkspaceId)
        {
            if (currentWorkspaceId == newWorkspaceId)
            {
                return;
            }

            Tags.Accept(Enumerable.Empty <IThreadSafeTag>());
        }
        private async Task selectTags()
        {
            if (!(Workspace.Value?.Id is long workspaceId))
            {
                return;
            }

            var currentTags = Tags.Value.Select(t => t.Id).OrderBy(CommonFunctions.Identity).ToArray();

            var chosenTags = await Navigate <SelectTagsViewModel, SelectTagsParameter, long[]>(
                new SelectTagsParameter(currentTags, workspaceId, false));

            if (chosenTags.OrderBy(CommonFunctions.Identity).SequenceEqual(currentTags))
            {
                return;
            }

            var selectedTags = await interactorFactory.GetMultipleTagsById(chosenTags).Execute();

            Tags.Accept(selectedTags);
        }