public SlideTagExCollection GetSlideTags(PresentationPart presentationPart)
        {
            TagList tagList = null;
            SlideTagExCollection slideTagList = new SlideTagExCollection();

            foreach (var sldPart in presentationPart.SlideParts)
            {
                var slide = presentationPart.Presentation.SlideIdList.Where(s => ((SlideId)s).RelationshipId == presentationPart.GetIdOfPart(sldPart)).FirstOrDefault();

                int index = presentationPart.Presentation.SlideIdList.ToList().IndexOf(slide);

                foreach (UserDefinedTagsPart tagPart in sldPart.UserDefinedTagsParts)
                {
                    tagList = tagPart.TagList;

                    foreach (Tag tag in tagList.ChildElements)
                    {
                        if (tag.Name.Value.Equals(PL_TAG))
                        {
                            SlideTagEx slideTagEx = null;
                            slideTagEx = XmlUtils.Deserialize <SlideTagEx>(tag.Val.ToString());
                            slideTagEx.PptSlideIndex = ++index;
                            slideTagEx.Title         = sldPart.Slide.InnerText;
                            if (slideTagEx != null)
                            {
                                slideTagList.Add(slideTagEx);
                            }
                        }
                    }
                }
            }

            return(slideTagList);
        }
Exemplo n.º 2
0
        private List <SlideUpdatedResultDto> UpdateListOfSlides(SlideTagExCollection slideTags)
        {
            var result = new List <SlideUpdatedResultDto>();

            if (slideTags != null)
            {
                for (int i = 0; i < slideTags.Count; i++)
                {
                    SlideTagEx slideTagEx     = slideTags[i];
                    string     sourceFilename = ClientUtils.UndecorateFileName(slideTagEx.SourceFilename);
                    string     status         = string.Empty;
                    string     lastModDate    = slideTagEx.SourceLastModDate.ToString(Message.DateFormat);
                    string     source         = string.Format("{0} - Slide {1}", sourceFilename, slideTagEx.SourceSlideNum);
                    switch (slideTagEx.SlideStatus)
                    {
                    case TagUpdateStatus.Updated:
                        status = "Updated";
                        break;

                    case TagUpdateStatus.New:
                        status = "New";
                        break;

                    case TagUpdateStatus.MissingOrDeleted:
                        status      = "Deleted";
                        lastModDate = string.Empty;
                        source      = sourceFilename;
                        break;

                    case TagUpdateStatus.NoChange:
                        status = "No change";
                        break;

                    case TagUpdateStatus.Added:
                        status      = "Added";
                        lastModDate = string.Empty;
                        source      = string.Empty;
                        break;

                    case TagUpdateStatus.Moved:
                        status = "Moved";
                        break;

                    case TagUpdateStatus.Local:
                        lastModDate = string.Empty;
                        source      = string.Empty;
                        break;
                    }


                    bool isUpdated = Helper.IsSlideUpdated(slideTagEx.SlideStatus);

                    result.Add(new SlideUpdatedResultDto
                    {
                        Tag           = slideTagEx,
                        PptSlideIndex = slideTagEx.PptSlideIndex == 0 ? slideTagEx.SourceSlideNum : slideTagEx.PptSlideIndex,
                        Status        = status,
                        LastModDate   = lastModDate,
                        Source        = source,
                        Id            = slideTagEx.Slide.Id.ToString(),
                        IsUpdated     = isUpdated
                    });
                }
            }

            return(result.OrderBy(x => x.PptSlideIndex).ToList());
        }
Exemplo n.º 3
0
        private bool CheckSlidesForUpdates(SlideTagExCollection slideTags, bool isLibraryFile, CheckUpdateDto fileInfo)
        {
            bool updatesExist = false;

            for (int x = 0; x < slideTags.Count; x++)
            {
                SlideTagEx slideTagEx = slideTags[x];
                if (slideTagEx.SlideStatus == TagUpdateStatus.Unknown)
                {
                    LibraryFileSlides libraryFileSlides = null;
                    try
                    {
                        if (fileInfo.FileId == "-1")
                        {
                            fileInfo.FileId = slideTagEx.File.Id.ToString();
                        }

                        libraryFileSlides = _filesService.GetFileSlidesInfo(fileInfo);
                    }
                    catch (Exception ex)
                    {
                        isExcuted = false;
                        return(updatesExist);
                    }

                    if (libraryFileSlides != null)
                    {
                        for (int i = 0; i < libraryFileSlides.Slides.Count; i++)
                        {
                            SlideInfo            librarySlideInfo = libraryFileSlides.Slides[i];
                            SlideTagExCollection findSlideTags;
                            findSlideTags = slideTags.FindBySlideId(fileInfo.ServerInfo.EnvironmentName, fileInfo.ServerInfo.ShortLibraryName, librarySlideInfo.SlideId);

                            if (findSlideTags.Any())
                            {
                                int movedCount = 0;
                                for (int z = 0; z < findSlideTags.Count; z++)
                                {
                                    SlideTagEx foundSlideTag = findSlideTags[z];
                                    if (isLibraryFile && foundSlideTag.PptSlideIndex != librarySlideInfo.SlideNumber)
                                    {
                                        if (z == 0 && movedCount == 0)
                                        {
                                            foundSlideTag.SlideStatus = TagUpdateStatus.Moved;
                                            ++movedCount;
                                        }
                                        else
                                        {
                                            foundSlideTag.SlideStatus = TagUpdateStatus.Added;
                                        }
                                    }
                                    else if (librarySlideInfo.LastModDate <= foundSlideTag.Slide.LastModDate.ToUniversalTime())
                                    {
                                        foundSlideTag.SlideStatus = TagUpdateStatus.NoChange;
                                    }
                                    else
                                    {
                                        foundSlideTag.SlideStatus = TagUpdateStatus.Updated;
                                        updatesExist = true;
                                    }
                                    foundSlideTag.SourceFilename    = librarySlideInfo.FileName;
                                    foundSlideTag.SourceSlideNum    = librarySlideInfo.SlideNumber;
                                    foundSlideTag.SourceLastModDate = (DateTime)librarySlideInfo.LastModDate;
                                }
                            }
                            else if (isLibraryFile)
                            {
                                SlideTagEx newSlideTag = new SlideTagEx(fileInfo.ServerInfo.EnvironmentName, fileInfo.ServerInfo.ShortLibraryName, librarySlideInfo, -1)
                                {
                                    SlideStatus       = TagUpdateStatus.New,
                                    Title             = librarySlideInfo.Title,
                                    SourceFilename    = librarySlideInfo.FileName,
                                    SourceSlideNum    = librarySlideInfo.SlideNumber,
                                    SourceLastModDate = (DateTime)librarySlideInfo.LastModDate
                                };
                                slideTags.Insert(i, newSlideTag);
                                updatesExist = true;
                            }
                        }
                    }

                    foreach (SlideTagEx nextSlideTagEx in slideTags)
                    {
                        if (nextSlideTagEx.SlideStatus == TagUpdateStatus.Unknown)
                        {
                            if (nextSlideTagEx.File.Id == slideTagEx.File.Id &&
                                nextSlideTagEx.Library.ShortName == slideTagEx.Library.ShortName &&
                                nextSlideTagEx.Library.Environment == slideTagEx.Library.Environment)
                            {
                                if (isLibraryFile)
                                {
                                    nextSlideTagEx.SlideStatus = TagUpdateStatus.Added;
                                }
                                else
                                {
                                    updatesExist = true;
                                    nextSlideTagEx.SlideStatus = TagUpdateStatus.MissingOrDeleted;
                                    if (libraryFileSlides != null && libraryFileSlides.Slides.Any())
                                    {
                                        nextSlideTagEx.SourceFilename = libraryFileSlides.Slides[0].FileName;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(updatesExist);
        }