/// <summary>
 /// Check a loaded slideshow to see if it needs updates or if the program does.
 /// Returns true if it is safe to finish loading or false if this function will
 /// handle that step somehow later.
 /// </summary>
 /// <returns></returns>
 private bool updateSmartLecture()
 {
     if (slideshow.Version < Slideshow.CurrentVersion)
     {
         MessageBox.show("This project is out of date, would you like to update it now?\nUpdating this project will allow you to edit it, however, it will be incompatible with older versions of Anomalous Medical.\nIt is reccomended that you do this update.", "Update Required", MessageBoxStyle.Yes | MessageBoxStyle.No | MessageBoxStyle.IconQuest, (result) =>
         {
             if (result == MessageBoxStyle.Yes)
             {
                 try
                 {
                     //First do the save as if needed to zip up old project
                     String backingLoc = editorController.ResourceProvider.BackingProvider.BackingLocation;
                     if (!backingLoc.EndsWith(".sl"))
                     {
                         saveAs(backingLoc + ".sl");
                     }
                     if (slideshow.Version < 2)
                     {
                         EmbeddedResourceHelpers.CopyResourceToStream(EmbeddedTemplateNames.MasterTemplate_trml, "MasterTemplate.trml", editorController.ResourceProvider, EmbeddedTemplateNames.Assembly);
                         EmbeddedResourceHelpers.CopyResourceToStream(EmbeddedTemplateNames.SlideMasterStyles_rcss, "SlideMasterStyles.rcss", editorController.ResourceProvider, EmbeddedTemplateNames.Assembly);
                     }
                     slideshow.updateToVersion(Slideshow.CurrentVersion, editorController.ResourceProvider);
                     unsafeSave();
                     finishLoadingSlideshow();
                 }
                 catch (Exception ex)
                 {
                     MessageBox.show(String.Format("There was an error updating your project.\nException type: {0}\n{1}", ex.GetType().Name, ex.Message), "Update Error", MessageBoxStyle.Ok | MessageBoxStyle.IconError);
                 }
             }
             else
             {
                 closeProject();
             }
             InlineRmlUpgradeCache.removeSlideshowPanels(slideshow);
         });
         return(false);
     }
     else if (slideshow.Version > Slideshow.CurrentVersion)
     {
         MessageBox.show("This project was created in a newer version of Anomalous Medical.\nPlease update Anomalous Medical to be able to edit this file.", "Update Required", MessageBoxStyle.Ok | MessageBoxStyle.IconWarning);
         closeProject();
         return(false);
     }
     return(true);
 }