public IList <OpenXMLDocumentPart <Sheet> > Run()
        {
            IList <OpenXMLDocumentPart <Sheet> > documentElements = new List <OpenXMLDocumentPart <Sheet> >();

            if (SplitExcelObj != null)
            {
                foreach (Person person in SplitExcelObj.Person)
                {
                    if (person.UniversalMarker != null)
                    {
                        foreach (PersonUniversalMarker marker in person.UniversalMarker)
                        {
                            IList <int> result = UniversalExcMarker.GetCrossedSheetElements(marker.ElementId, marker.SelectionLastelementId);
                            foreach (int index in result)
                            {
                                if (string.IsNullOrEmpty(SubdividedParagraphs[index]))
                                {
                                    SubdividedParagraphs[index] = person.Email;
                                }
                                else
                                {
                                    throw new ElementToPersonPairException();
                                }
                            }
                        }
                    }
                }

                string email = string.Empty;
                OpenXMLDocumentPart <Sheet> part = new OpenXMLDocumentPart <Sheet>();
                var sheetPartsList = WorkBook.Sheets.Elements <Sheet>().ToList();
                for (int index = 0; index < sheetPartsList.Count; index++)
                {
                    if (SubdividedParagraphs[index] != email)
                    {
                        part = new OpenXMLDocumentPart <Sheet>();
                        part.CompositeElements.Add(sheetPartsList[index] as Sheet);
                        email = SubdividedParagraphs[index];
                        if (string.IsNullOrEmpty(email))
                        {
                            part.PartOwner = "undefined";
                        }
                        else
                        {
                            part.PartOwner = email;
                        }

                        documentElements.Add(part);
                    }
                    else
                    {
                        part.CompositeElements.Add(sheetPartsList[index] as Sheet);
                    }
                }
            }

            return(documentElements);
        }
Example #2
0
        public IList <OpenXMLDocumentPart <OpenXmlElement> > Run()
        {
            IList <OpenXMLDocumentPart <OpenXmlElement> > documentElements = new List <OpenXMLDocumentPart <OpenXmlElement> >();

            if (SplitDocumentObj != null)
            {
                foreach (Person person in SplitDocumentObj.Person)
                {
                    if (person.UniversalMarker != null)
                    {
                        foreach (PersonUniversalMarker marker in person.UniversalMarker)
                        {
                            IList <int> result = UniversalDocMarker.GetCrossedParagraphElements(marker.ElementId, marker.SelectionLastelementId);
                            foreach (int index in result)
                            {
                                if (string.IsNullOrEmpty(SubdividedParagraphs[index]))
                                {
                                    SubdividedParagraphs[index] = person.Email;
                                }
                                else
                                {
                                    throw new ElementToPersonPairException();
                                }
                            }
                        }
                    }

                    if (person.TextMarker != null)
                    {
                    }

                    if (person.PictureMarker != null)
                    {
                    }

                    if (person.TableMarker != null)
                    {
                    }
                }

                string email = string.Empty;
                OpenXMLDocumentPart <OpenXmlElement> part = new OpenXMLDocumentPart <OpenXmlElement>();
                for (int index = 0; index < DocumentBody.ChildElements.Count; index++)
                {
                    //check if parts are neighbours then join into one document
                    if (SubdividedParagraphs[index] != email)
                    {
                        part = new OpenXMLDocumentPart <OpenXmlElement>();
                        part.CompositeElements.Add(DocumentBody.ChildElements[index]);
                        email = SubdividedParagraphs[index];
                        if (string.IsNullOrEmpty(email))
                        {
                            part.PartOwner = "undefined";
                        }
                        else
                        {
                            part.PartOwner = email;
                        }

                        documentElements.Add(part);
                    }
                    else
                    {
                        part.CompositeElements.Add(DocumentBody.ChildElements[index]);
                    }
                }
            }

            return(documentElements);
        }