private SlideModel CreateNewSlide(string id)
        {
            SlideModel slide = new SlideModel(SlideModel.rIdtoSlideIndex(id));

            this.powerpoint.addToSlideList(id, slide);
            return(slide);
        }
 public void Scan()
 {
     try
     {
         using PresentationDocument document = PresentationDocument.Open(this.powerpoint.FilePath, true);
         SlidePart slidePart;
         var       presentation = document.PresentationPart.Presentation;
         //Console.WriteLine("Loaded");
         foreach (SlideId slideId in presentation.SlideIdList)
         {
             slidePart = document.PresentationPart.GetPartById(slideId.RelationshipId) as SlidePart;
             if (slidePart == null || slidePart.Slide == null)
             {
                 continue;
             }
             string     currentSlideRelID = slideId.RelationshipId.Value;
             SlideModel slidemodel        = CreateNewSlide(currentSlideRelID);
             Slide      slide             = slidePart.Slide;
             CheckIssues(slide, currentSlideRelID, slidePart, document);
         }
         document.Close();
     }
     catch (FileNotFoundException)
     {
         Console.WriteLine("Opps, we could not find the presentation you were referencing. Try again....");
     }
 }
        private void CheckForVideo(Slide slide, String currentSlideRelID, SlidePart slidePart, PresentationDocument document)
        {
            var videos = slide.Descendants <VideoFromFile>();

            foreach (VideoFromFile video in videos)
            {
                String  path          = slidePart.GetReferenceRelationship(video.Link).Uri.OriginalString;
                String  fileExtension = System.IO.Path.GetExtension(path);
                String  description   = $"Found video on slide {SlideModel.rIdtoSlideIndex(currentSlideRelID)}, file extension is {fileExtension}";
                Boolean fixable;
                String  filename = System.IO.Path.GetFileName(path);
                if (fileExtension == ".mp4")
                {
                    fixable = false;
                }
                else
                {
                    fixable = true;
                }
                IIssue issue = new VideoIssueItem(filename, video, description, fixable);
                powerpoint.slides[currentSlideRelID].addToIssueList(issue);
            }
        }
 private void CheckForAutoTransition(String currentSlideRelID, Transition transitionElement)
 {
     if (!(transitionElement.Parent.GetType() == typeof(AlternateContentFallback)))
     {
         var attribute = transitionElement.GetAttributes().Where(x => x.LocalName == "advTm").FirstOrDefault();
         if (attribute.Value != null)
         {
             IIssue issue = new AutoTransitionIssue(Int32.Parse(attribute.Value), transitionElement, $"Found auto transition on {SlideModel.rIdtoSlideIndex(currentSlideRelID)} duration: {attribute.Value} ", true);
             powerpoint.slides[currentSlideRelID].addToIssueList(issue);
         }
     }
 }
 private void CheckForNoMouseClickTransition(string currentSlideRelID, Transition transitionElement)
 {
     if (!(transitionElement.Parent.GetType() == typeof(AlternateContentFallback)))
     {
         var attribute = transitionElement.GetAttributes().Where(x => x.LocalName == "advClick").FirstOrDefault();
         if (attribute.Value != null && attribute.Value == "0")
         {
             IIssue issue = new NoClickTransitionIssue(transitionElement, $"Found no click transition issue on {SlideModel.rIdtoSlideIndex(currentSlideRelID)}", true);
             powerpoint.slides[currentSlideRelID].addToIssueList(issue);
         }
     }
 }
 public void addToSlideList(string Id, SlideModel slide)
 {
     slides.Add(Id, slide);
 }