public void NavigateRemovePlaylistSaveWorkflow()
        {
            IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>();

            workflowManager.NavigatePopStates(new Guid[]
            {
                Consts.WF_STATE_ID_PLAYLIST_SAVE_EDIT_NAME,
                Consts.WF_STATE_ID_PLAYLIST_SAVE_FAILED,
                Consts.WF_STATE_ID_PLAYLIST_SAVE_SUCCESSFUL
            });
        }
        protected static void Navigate(Guid rootWorkflowState, ResourcePath path)
        {
            IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>();

            workflowManager.StartBatchUpdate();
            try
            {
                workflowManager.NavigatePopStates(new Guid[] { Consts.WF_STATE_ID_LOCAL_MEDIA_NAVIGATION_ROOT, Consts.WF_STATE_ID_BROWSE_MEDIA_NAVIGATION_ROOT });

                workflowManager.NavigatePush(rootWorkflowState);

                Share localShare = FindLocalShareContainingPath(path);
                if (localShare == null)
                {
                    ServiceRegistration.Get <ILogger>().Warn("AbstractBrowseMediaNavigationScreenData: Cannot navigate to local browse view - no local share countaining path '{0}' found", path);
                    return;
                }

                NavigationData nd = MediaNavigationModel.GetNavigationData(workflowManager.CurrentNavigationContext, false);
                if (nd == null)
                {
                    return;
                }
                AbstractMediaRootProxyViewSpecification rootVS = FindParentViewSpecification <AbstractMediaRootProxyViewSpecification>(nd);

                if (rootVS == null)
                {
                    return;
                }

                rootVS.Navigate(localShare, path, navigateVS =>
                {
                    NavigationData currentNd = MediaNavigationModel.GetNavigationData(workflowManager.CurrentNavigationContext, false);
                    if (currentNd == null)
                    {
                        ServiceRegistration.Get <ILogger>().Warn("AbstractBrowseMediaNavigationScreenData: Cannot navigate to local browse view - no navigation data found");
                        return;
                    }
                    AbstractItemsScreenData sd = (AbstractItemsScreenData)currentNd.CurrentScreenData;
                    sd.NavigateToView(navigateVS);
                });
            }
            finally
            {
                workflowManager.EndBatchUpdate();
            }
        }