/// <summary>
        /// Container placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void ContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            switch (tagPlaceHolderValue)
            {
                case PlaceholderContainerA:
                    // As this sample is non-refreshable hence we don't call GetRecursiveTemplateElementForContainer method( Sets the parentContainer from CustomXmlPart if refresh else saves the parentContainer markup to CustomXmlPart)
                    tagValue = (openXmlElementDataContext.DataContext as Order).Id.ToString();

                    if (!string.IsNullOrEmpty(tagValue))
                    {
                        this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
                    }

                    foreach (var v in openXmlElementDataContext.Element.Elements())
                    {
                        this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = v, DataContext = openXmlElementDataContext.DataContext });
                    }

                    break;
            }
        }
        /// <summary>
        /// Clones the element and set content in placeholders.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        /// <returns>Clones the element and returns the cloned element</returns>
        protected SdtElement CloneElementAndSetContentInPlaceholders(OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null)
            {
                throw new ArgumentNullException("openXmlElementDataContext");
            }

            if (openXmlElementDataContext.Element == null)
            {
                throw new ArgumentNullException("openXmlElementDataContext");
            }

            SdtElement clonedSdtElement;

            if (openXmlElementDataContext.Element.Parent is Paragraph)
            {
                Paragraph clonedPara = openXmlElementDataContext.Element.Parent.InsertBeforeSelf(openXmlElementDataContext.Element.Parent.CloneNode(true) as Paragraph);
                clonedSdtElement = clonedPara.Descendants <SdtElement>().First();
            }
            else
            {
                clonedSdtElement = openXmlElementDataContext.Element.InsertBeforeSelf(openXmlElementDataContext.Element.CloneNode(true) as SdtElement);
            }

            foreach (var v in clonedSdtElement.Elements())
            {
                this.SetContentInPlaceholders(new OpenXmlElementDataContext {
                    Element = v, DataContext = openXmlElementDataContext.DataContext
                });
            }

            return(clonedSdtElement);
        }
Example #3
0
        /// <summary>
        /// Called when [place holder found].
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        private void OnPlaceHolderFound(OpenXmlElementDataContext openXmlElementDataContext)
        {
            string     templateTagPart = string.Empty;
            string     tagGuidPart     = string.Empty;
            SdtElement element         = openXmlElementDataContext.Element as SdtElement;

            GetTagValue(element, out templateTagPart, out tagGuidPart);

            if (this.generationInfo.PlaceHolderTagToTypeCollection.ContainsKey(templateTagPart))
            {
                switch (this.generationInfo.PlaceHolderTagToTypeCollection[templateTagPart])
                {
                case PlaceHolderType.None:
                    break;

                case PlaceHolderType.NonRecursive:
                    this.NonRecursivePlaceholderFound(templateTagPart, openXmlElementDataContext);
                    break;

                case PlaceHolderType.Recursive:
                    this.RecursivePlaceholderFound(templateTagPart, openXmlElementDataContext);
                    break;

                case PlaceHolderType.Ignore:
                    this.IgnorePlaceholderFound(templateTagPart, openXmlElementDataContext);
                    break;

                case PlaceHolderType.Container:
                    this.ContainerPlaceholderFound(templateTagPart, openXmlElementDataContext);
                    break;
                }
            }
        }
        /// <summary>
        /// Container placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void ContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            if (this.placeHolderNameToContentControlXmlMetadataCollection.ContainsKey(tagPlaceHolderValue))
            {
                tagValue = GetNodeText(openXmlElementDataContext.DataContext, this.placeHolderNameToContentControlXmlMetadataCollection[tagPlaceHolderValue].ControlTagXPath);

                if (!string.IsNullOrEmpty(tagValue))
                {
                    this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
                }

                foreach (var v in openXmlElementDataContext.Element.Elements())
                {
                    this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = v, DataContext = openXmlElementDataContext.DataContext });
                }
            }
        }
        /// <summary>
        /// Container placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void ContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            string refTagValue = string.Empty;
            string refControlValue = string.Empty;

            XPathNavigator navigator = Parse(openXmlElementDataContext, tagPlaceHolderValue, ref refTagValue, ref refControlValue);

            if (navigator != null)
            {
                tagValue = navigator.GetAttribute(refTagValue, (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);
            }

            if (!string.IsNullOrEmpty(tagValue))
            {
                this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
            }

            foreach (var v in openXmlElementDataContext.Element.Elements())
            {
                this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = v, DataContext = openXmlElementDataContext.DataContext });
            }
        }
        /// <summary>
        /// Non recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case PhoneLabel:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as Phone).Label.ToString();
                    content = tagValue;
                    break;
                case PhoneNumber:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as Phone).Number.ToString();
                    content = ((openXmlElementDataContext.DataContext) as Phone).Number;
                    break;
                case MyName:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as MyAddress).Name.ToString();
                    content = ((openXmlElementDataContext.DataContext) as MyAddress).Name;
                    break;

                case SignedDate:
                     bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as MyAddress).Date.ToString();
                    content = ((openXmlElementDataContext.DataContext) as MyAddress).Date.ToString();
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                base.NonRecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
            else
            {
                // Set the tag for the content control
                if (!string.IsNullOrEmpty(tagValue))
                {
                    this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
                }

                // Set the content for the content control
                this.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
            }
        }
        /// <summary>
        /// Determines whether [is content control] [the specified open XML element data context].
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        /// <returns>
        ///   <c>true</c> if [is content control] [the specified open XML element data context]; otherwise, <c>false</c>.
        /// </returns>
        private static bool IsContentControl(OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null)
            {
                return(false);
            }

            return(openXmlElementDataContext.Element is SdtBlock || openXmlElementDataContext.Element is SdtRun || openXmlElementDataContext.Element is SdtRow || openXmlElementDataContext.Element is SdtCell);
        }
        /// <summary>
        /// Non recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;

            // Index is used to build XPath for controls that are bound to collection item
            int index = -1;

            // XPath to be used for data binding
            string xPath = string.Empty;

            switch (tagPlaceHolderValue)
            {
                case PlaceholderNonRecursiveA:
                    tagValue = ((openXmlElementDataContext.DataContext) as Vendor).Id.ToString();
                    index = (this.GetDataContext() as Order).vendors.IndexOf((openXmlElementDataContext.DataContext) as Vendor);
                    xPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/vendors[1]/Vendor[" + (index + 1).ToString() + "]/Name[1]";
                    break;
                case PlaceholderNonRecursiveB:
                    tagValue = ((openXmlElementDataContext.DataContext) as Item).Id.ToString();
                    index = (this.GetDataContext() as Order).items.IndexOf((openXmlElementDataContext.DataContext) as Item);
                    xPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/items[1]/Item[" + (index + 1).ToString() + "]/Name[1]";
                    break;
                case PlaceholderNonRecursiveC:
                    tagValue = (this.GetDataContext() as Order).Id.ToString();
                    xPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/Name[1]";
                    break;
                case PlaceholderNonRecursiveD:
                    tagValue = (this.GetDataContext() as Order).Id.ToString();
                    xPath = "/ns0:DocumentRootNode[1]/ns0:DataBoundControlsDataStore[1]/ns0:Data[1]/Order[1]/Description[1]";
                    break;
            }

            // Set the tag for the content control
            if (!string.IsNullOrEmpty(tagValue))
            {
                this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
            }

            // Set the data binding for content control
            if (!string.IsNullOrEmpty(xPath))
            {
                this.SetDataBinding(xPath, (openXmlElementDataContext.Element) as SdtElement);
            }
        }
        /// <summary>
        /// Container placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void ContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            if (this.placeHolderNameToContentControlXmlMetadataCollection.ContainsKey(tagPlaceHolderValue))
            {
                if (!this.isRefreshable)
                {
                    tagValue = GetNodeText(openXmlElementDataContext.DataContext, this.placeHolderNameToContentControlXmlMetadataCollection[tagPlaceHolderValue].ControlTagXPath);

                    if (!string.IsNullOrEmpty(tagValue))
                    {
                        this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
                    }

                    foreach (var v in openXmlElementDataContext.Element.Elements())
                    {
                        this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = v, DataContext = openXmlElementDataContext.DataContext });
                    }
                }
                else
                {
                    SdtElement parentContainer = openXmlElementDataContext.Element as SdtElement;
                    // Sets the parentContainer from CustomXmlPart if refresh else saves the parentContainer markup to CustomXmlPart
                    this.GetParentContainer(ref parentContainer, tagPlaceHolderValue);

                    tagValue = GetNodeText(openXmlElementDataContext.DataContext, this.placeHolderNameToContentControlXmlMetadataCollection[tagPlaceHolderValue].ControlTagXPath);

                    if (!string.IsNullOrEmpty(tagValue))
                    {
                        this.SetTagValue(parentContainer, GetFullTagValue(tagPlaceHolderValue, tagValue));
                    }

                    foreach (var v in parentContainer.Elements())
                    {
                        this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = v, DataContext = openXmlElementDataContext.DataContext });
                    }
                }
            }
        }
        /// <summary>
        /// Populates the other open XML elements.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        private void PopulateOtherOpenXmlElements(OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext.Element is OpenXmlCompositeElement && openXmlElementDataContext.Element.HasChildren)
            {
                List<OpenXmlElement> elements = openXmlElementDataContext.Element.Elements().ToList();

                foreach (var element in elements)
                {
                    if (element is OpenXmlCompositeElement)
                    {
                        this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = element, DataContext = openXmlElementDataContext.DataContext });
                    }
                }
            }
        }
Example #11
0
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            // Reuse base class code and handle only tags unavailable in base class
            //bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case Title:
                    //bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).Title.ToString();
                    content = tagValue;
                    break;
            }

            //if (bubblePlaceHolder)
            //{
            //    // Use base class code as tags are already defined in base class.
            //    base.NonRecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            //}
            //else
            //{
                // Set the tag for the content control
                if (!string.IsNullOrEmpty(tagValue))
                {
                    this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
                }

                // Set the content for the content control
                this.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
            //}
        }
        /// <summary>
        /// Sets the content in placeholders.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected void SetContentInPlaceholders(OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (IsContentControl(openXmlElementDataContext))
            {
                string     templateTagPart;
                string     tagGuidPart;
                SdtElement element = openXmlElementDataContext.Element as SdtElement;
                GetTagValue(element, out templateTagPart, out tagGuidPart);

                if (this.generationInfo.PlaceholderTagToTypeCollection.ContainsKey(templateTagPart))
                {
                    this.OnPlaceHolderFound(openXmlElementDataContext);
                }
                else
                {
                    this.PopulateOtherOpenXmlElements(openXmlElementDataContext);
                }
            }
            else
            {
                this.PopulateOtherOpenXmlElements(openXmlElementDataContext);
            }
        }
        /// <summary>
        /// Containers the placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void ContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            switch (tagPlaceHolderValue)
            {
                case PlaceholderContainerA:
                    SdtElement parentContainer = openXmlElementDataContext.Element as SdtElement;
                    // Sets the parentContainer from CustomXmlPart if refresh else saves the parentContainer markup to CustomXmlPart
                    this.GetParentContainer(ref parentContainer, tagPlaceHolderValue);
                    base.ContainerPlaceholderFound(placeholderTag, new OpenXmlElementDataContext() { Element = parentContainer, DataContext = openXmlElementDataContext.DataContext });
                    break;
            }
        }
        /// <summary>
        /// Non recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case DateRequest:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).DateRequest.ToString("dd/MM/yyyy");
                    content = tagValue;
                    break;
                case UserRequest:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).UserRequest;
                    content = tagValue;
                    break;
                case TypeOfApproval:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).TypeOfApproval;
                    content = tagValue;
                    break;
                case Chief:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).Chief;
                    content = tagValue;
                    break;
                case ChiefStatus:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ChiefStatus;
                    content = tagValue;
                    break;
                case ChiefComment:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ChiefComment;
                    content = tagValue;
                    break;
                case Buyer:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).Buyer;
                    content = tagValue;
                    break;
                case BuyerStatus:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).BuyerStatus;
                    content = tagValue;
                    break;
                case BuyerComment:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).BuyerComment;
                    content = tagValue;
                    break;
                case Approver:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).Approver;
                    content = tagValue;
                    break;
                case ApproverStatus:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ApproverStatus;
                    content = tagValue;
                    break;
                case ApproverComment:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ApproverComment;
                    content = tagValue;
                    break;
                case Accountant:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).Accountant;
                    content = tagValue;
                    break;
                case AccountantStatus:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).AccountantStatus;
                    content = tagValue;
                    break;
                case AccountantComment:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).AccountantComment;
                    content = tagValue;
                    break;
                case Confirmer:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).Confirmer;
                    content = tagValue;
                    break;
                case ConfirmerStatus:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ConfirmerStatus;
                    content = tagValue;
                    break;
                case ConfirmerComment:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ConfirmerComment;
                    content = tagValue;
                    break;

                case PurchaseDetail_No:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PurchaseDetail).No;
                    content = tagValue;
                    break;
                case PurchaseDetail_Title:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PurchaseDetail).Title;
                    content = tagValue;
                    break;
                case PurchaseDetail_Description:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PurchaseDetail).Description;
                    content = tagValue;
                    break;
                case PurchaseDetail_Quantity:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PurchaseDetail).Quantity;
                    content = tagValue;
                    break;
                case PurchaseDetail_Price:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PurchaseDetail).Price;
                    content = tagValue;
                    break;
                case TotalPrice:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).TotalPrice;
                    content = tagValue;
                    break;

                case ReferencePurchase_No:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as ReferencePurchase).No;
                    content = tagValue;
                    break;
                case ReferencePurchase_Title:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as ReferencePurchase).Title;
                    content = tagValue;
                    break;
                case ReferencePurchase_DateRequest:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as ReferencePurchase).DateRequest.ToString("dd/MM/yyyy");
                    content = tagValue;
                    break;
                case ReferencePurchase_UserRequest:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as ReferencePurchase).UserRequest;
                    content = tagValue;
                    break;
                case ReferencePurchase_DepartmentRequest:
                    bubblePlaceHolder = false;
                    tagValue = ((openXmlElementDataContext.DataContext) as ReferencePurchase).DepartmentRequest;
                    content = tagValue;
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                base.NonRecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
            else
            {
                // Set the tag for the content control
                if (!string.IsNullOrEmpty(tagValue))
                {
                    this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
                }

                // Set the content for the content control
                this.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
            }
        }
        /// <summary>
        /// Recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            switch (tagPlaceHolderValue)
            {
                case PlaceholderRecursiveA:

                    foreach (Vendor testB in ((openXmlElementDataContext.DataContext) as Order).vendors)
                    {
                        SdtElement clonedElement = this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = testB });
                    }

                    openXmlElementDataContext.Element.Remove();

                    break;
                case PlaceholderRecursiveB:

                    foreach (Item testC in ((openXmlElementDataContext.DataContext) as Order).items)
                    {
                        SdtElement clonedElement = this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = testC });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
            }
        }
Example #16
0
        /// <summary>
        /// Called when [place holder found].
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        private void OnPlaceHolderFound(OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
        {
            string templateTagPart = string.Empty;
            string tagGuidPart = string.Empty;
            SdtElement element = openXmlElementDataContext.Element as SdtElement;
            GetTagValue(element, out templateTagPart, out tagGuidPart);

            if (this.generationInfo.PlaceHolderTagToTypeCollection.ContainsKey(templateTagPart))
            {
                switch (this.generationInfo.PlaceHolderTagToTypeCollection[templateTagPart])
                {
                    case PlaceHolderType.None:
                        break;
                    case PlaceHolderType.NonRecursive:
                        this.NonRecursivePlaceholderFound(templateTagPart, openXmlElementDataContext, document);
                        break;
                    case PlaceHolderType.Recursive:
                        this.RecursivePlaceholderFound(templateTagPart, openXmlElementDataContext, document);
                        break;
                    case PlaceHolderType.Ignore:
                        this.IgnorePlaceholderFound(templateTagPart, openXmlElementDataContext, document);
                        break;
                    case PlaceHolderType.Container:
                        this.ContainerPlaceholderFound(templateTagPart, openXmlElementDataContext, document);
                        break;
                }
            }
        }
Example #17
0
        /// <summary>
        /// Sets the content in placeholders.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected void SetContentInPlaceholders(OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
        {
            if (IsContentControl(openXmlElementDataContext))
            {
                string templateTagPart = string.Empty;
                string tagGuidPart = string.Empty;
                SdtElement element = openXmlElementDataContext.Element as SdtElement;
                GetTagValue(element, out templateTagPart, out tagGuidPart);

                if (this.generationInfo.PlaceHolderTagToTypeCollection.ContainsKey(templateTagPart))
                {
                    this.OnPlaceHolderFound(openXmlElementDataContext, document);
                }
                else
                {
                    this.PopulateOtherOpenXmlElements(openXmlElementDataContext, document);
                }
            }
            else
            {
                this.PopulateOtherOpenXmlElements(openXmlElementDataContext, document);
            }
        }
Example #18
0
        /// <summary>
        /// Clones the element and set content in placeholders.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        /// <returns></returns>
        protected SdtElement CloneElementAndSetContentInPlaceholders(OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
        {
            if (openXmlElementDataContext == null)
            {
                throw new ArgumentNullException("openXmlElementDataContext");
            }

            if (openXmlElementDataContext.Element == null)
            {
                throw new ArgumentNullException("openXmlElementDataContext.element");
            }

            SdtElement clonedSdtElement = null;

            if (openXmlElementDataContext.Element.Parent != null && openXmlElementDataContext.Element.Parent is Paragraph)
            {
                Paragraph clonedPara = openXmlElementDataContext.Element.Parent.InsertBeforeSelf(openXmlElementDataContext.Element.Parent.CloneNode(true) as Paragraph);
                clonedSdtElement = clonedPara.Descendants<SdtElement>().First();
            }
            else
            {
                clonedSdtElement = openXmlElementDataContext.Element.InsertBeforeSelf(openXmlElementDataContext.Element.CloneNode(true) as SdtElement);
            }

            foreach (var v in clonedSdtElement.Elements())
            {
                this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = v, DataContext = openXmlElementDataContext.DataContext }, document);
            }

            return clonedSdtElement;
        }
        protected override void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue;
            string tagGuidPart;
               DocumentGenerator.GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case BuildConfigurationSolutionContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (BuildConfigurationSolution bcs in (openXmlElementDataContext.DataContext as BuildDetail).BuildConfigurationSolutions)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = bcs });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case BuildConfigurationContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (BuildConfiguration bc in (openXmlElementDataContext.DataContext as BuildDetail).BuildConfigurations)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = bc });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case ChangesetContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (Changeset cs in (openXmlElementDataContext.DataContext as BuildDetail).Changesets)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = cs });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case ChangesetChangeContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (ChangesetChangeDetail ccd in (openXmlElementDataContext.DataContext as BuildDetail).ChangesetChangeDetails)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = ccd });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case ChangesetChangeServerPaths:
                    bubblePlaceHolder = false;

                    foreach (var ccsp in (openXmlElementDataContext.DataContext as ChangesetChangeDetail).ChangesetChangeServerPaths)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = ccsp });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case WorkItemContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (WorkItem wi in (openXmlElementDataContext.DataContext as BuildDetail).WorkItems)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = wi });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case TestResultPassedItemDetailContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (TestResultPassedItem trpi in (openXmlElementDataContext.DataContext as BuildDetail).TestResultPassedItems)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = trpi });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case TestResultFailedItemDetailContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (TestResultFailedItem trfi in (openXmlElementDataContext.DataContext as BuildDetail).TestResultFailedItems)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = trfi });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case TestResultInconclusiveItemDetailContentControlRow:
                    bubblePlaceHolder = false;

                    foreach (TestResultInconclusiveItem trii in (openXmlElementDataContext.DataContext as BuildDetail).TestResultInconclusiveItems)
                    {
                        // SdtElement clonedElement =
                        this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext { Element = openXmlElementDataContext.Element, DataContext = trii });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                // base.
                this.RecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
        }
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue;
            string tagGuidPart;
            DocumentGenerator.GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case DocumentCreatedOn:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).DocumentDetail.CreatedOn;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).DocumentDetail.CreatedOn;
                    break;
                case DocumentCreatedBy:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).DocumentDetail.CreatedBy;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).DocumentDetail.CreatedBy;
                    break;
                case BuildNumber:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildNumber;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildNumber;
                    break;
                case BuildReason:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildReason;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildReason;
                    break;
                case BuildQuality:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildQuality;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildQuality;
                    break;
                case BuildRequestedBy:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildRequestedBy;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildRequestedBy;
                    break;
                case BuildDefinitionName:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildDefinition;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildDefinition;
                    break;
                case BuildTeamProject:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildTeamProject;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildTeamProject;
                    break;
                case BuildTotalExecutionTimeInSeconds:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildTotalExecutionTimeInSeconds;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildTotalExecutionTimeInSeconds;
                    break;
                case BuildController:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildController;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildController;
                    break;
                case BuildUri:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildUri.ToString();
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildUri.ToString();
                    break;
                case BuildSourceGetVersion:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildSourceGetVersion;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildSourceGetVersion;
                    break;
                case BuildShelvesetName:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildShelvesetName;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildShelvesetName;
                    break;
                case BuildLabelName:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLabelName;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLabelName;
                    break;
                case BuildLogLocation:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLogLocation;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLogLocation;
                    break;
                case BuildDropLocation:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildDropLocation;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildDropLocation;
                    break;
                case BuildLastModifiedBy:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLastChangedBy;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLastChangedBy;
                    break;
                case BuildLastModifiedOn:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLastChangedOn;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLastChangedOn;
                    break;
                case BuildLastModifiedNoOfDaysAgo:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLastModifiedNoOfDaysAgo;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildLastModifiedNoOfDaysAgo;
                    break;
                case BuildCompletedNoOfDaysAgo:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildCompletedNoOfDaysAgo;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildCompletedNoOfDaysAgo;
                    break;
                case BuildRootNodeSolutionServerPath:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeSolutionServerPath;
                    content = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeSolutionServerPath;
                    break;
                case BuildRootNodeErrorCount:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeErrorCount;
                    content = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeErrorCount;
                    break;
                case BuildRootNodeWarningCount:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeWarningCount;
                    content = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeWarningCount;
                    break;
                case BuildRootNodeLogFile:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeLogFile;
                    content = (openXmlElementDataContext.DataContext as BuildConfigurationSolution).BuildRootNodeLogFile;
                    break;
                case BuildPlatform:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigPlatform;
                    content = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigPlatform;
                    break;
                case BuildFlavor:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigFlavor;
                    content = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigFlavor;
                    break;
                case BuildConfigTotalErrors:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigTotalErrors;
                    content = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigTotalErrors;
                    break;
                case BuildConfigTotalWarnings:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigTotalWarnings;
                    content = (openXmlElementDataContext.DataContext as BuildConfiguration).BuildConfigTotalWarnings;
                    break;
                case ChangesetId:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as Changeset).ChangesetId;
                    content = (openXmlElementDataContext.DataContext as Changeset).ChangesetId;
                    break;
                case ChangesetComment:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as Changeset).ChangesetComment;
                    content = (openXmlElementDataContext.DataContext as Changeset).ChangesetComment;
                    break;
                case ChangesetCommittedBy:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as Changeset).ChangesetCommittedBy;
                    content = (openXmlElementDataContext.DataContext as Changeset).ChangesetCommittedBy;
                    break;
                case ChangesetCommittedOn:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as Changeset).ChangesetCommittedOn;
                    content = (openXmlElementDataContext.DataContext as Changeset).ChangesetCommittedOn;
                    break;
                case ChangesetTotalCount:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).ChangesetTotalCount;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).ChangesetTotalCount;
                    break;
                case ChangesetChangeId:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as ChangesetChangeDetail).ChangesetChangeId;
                    content = (openXmlElementDataContext.DataContext as ChangesetChangeDetail).ChangesetChangeId;
                    break;
                case ChangesetChangeServerPath:
                    bubblePlaceHolder = false;
                    tagValue = openXmlElementDataContext.DataContext as string;
                    content = openXmlElementDataContext.DataContext as string;
                    break;
                case WorkItemId:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemId;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemId;
                    break;
                case WorkItemTitle:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemTitle;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemTitle;
                    break;
                case WorkItemType:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemType;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemType;
                    break;
                case WorkItemState:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemState;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemState;
                    break;
                case WorkItemAssignedTo:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemAssignedTo;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemAssignedTo;
                    break;
                case WorkItemIteration:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemIterationPath;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemIterationPath;
                    break;
                case WorkItemAreaPath:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as WorkItem).WorkItemAreaPath;
                    content = (openXmlElementDataContext.DataContext as WorkItem).WorkItemAreaPath;
                    break;
                case WorkItemIntroduction:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).WorkItemIntroduction;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).WorkItemIntroduction;
                    break;
                case TestResultId:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultId;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultId;
                    break;
                case TestResultTitle:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTitle;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTitle;
                    break;
                case TestResultStatus:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultStatus;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultStatus;
                    break;
                case TestResultTotalTest:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTest;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTest;
                    break;
                case TestResultTotalTestCompleted:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestCompleted;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestCompleted;
                    break;
                case TestResultTotalTestPassed:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestPassed;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestPassed;
                    break;
                case TestResultTotalTestFailed:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestFailed;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestFailed;
                    break;
                case TestResultTotalTestPassRate:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestPassRate;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestPassRate;
                    break;
                case TestResultTotalTestInconclusive:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestInconclusive;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultTotalTestInconclusive;
                    break;
                case TestResultIsAutomated:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultIsAutomated;
                    content = (openXmlElementDataContext.DataContext as BuildDetail).TestResult.TestResultIsAutomated;
                    break;
                case TestResultPassedListTitle:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as TestResultPassedItem).TestResultPassedListTitle;
                    content = (openXmlElementDataContext.DataContext as TestResultPassedItem).TestResultPassedListTitle;
                    break;
                case TestResultPassedListStatus:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as TestResultPassedItem).TestResultPassedListStatus;
                    content = (openXmlElementDataContext.DataContext as TestResultPassedItem).TestResultPassedListStatus;
                    break;
                case TestResultFailedListTitle:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as TestResultFailedItem).TestResultFailedListTitle;
                    content = (openXmlElementDataContext.DataContext as TestResultFailedItem).TestResultFailedListTitle;
                    break;
                case TestResultFailedListReason:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as TestResultFailedItem).TestResultFailedListReason;
                    content = (openXmlElementDataContext.DataContext as TestResultFailedItem).TestResultFailedListReason;
                    break;
                case TestResultInconclusiveListTitle:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as TestResultInconclusiveItem).TestResultInconclusiveListTitle;
                    content = (openXmlElementDataContext.DataContext as TestResultInconclusiveItem).TestResultInconclusiveListTitle;
                    break;
                case TestResultInconclusiveListStatus:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as TestResultInconclusiveItem).TestResultInconclusiveListStatus;
                    content = (openXmlElementDataContext.DataContext as TestResultInconclusiveItem).TestResultInconclusiveListStatus;
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                // base.
                this.NonRecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
            else
            {
                // Set the tag for the content control
                if (!string.IsNullOrEmpty(tagValue))
                {
                    DocumentGenerator.SetTagValue(openXmlElementDataContext.Element as SdtElement, DocumentGenerator.GetFullTagValue(tagPlaceHolderValue, tagValue));
                }

                // Set the content for the content control
                DocumentGenerator.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
            }
        }
        /// <summary>
        /// Non recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;
            string refTagValue = string.Empty;
            string refControlValue = string.Empty;

            XPathNavigator navigator = Parse(openXmlElementDataContext, tagPlaceHolderValue, ref refTagValue, ref refControlValue);

            if (navigator != null)
            {
                tagValue = navigator.GetAttribute(refTagValue, (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);
                content = navigator.GetAttribute(refControlValue, (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);
            }

            // Set the tag for the content control
            if (!string.IsNullOrEmpty(tagValue))
            {
                this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
            }

            // Set text without data binding
            this.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
        }
 /// <summary>
 /// Image placeholder found.
 /// </summary>
 /// <param name="placeholderTag">The image placeholder tag.</param>
 /// <param name="openXmlElementDataContext">The open XML element data context.</param>
 protected abstract void PictureContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext);
 /// <summary>
 /// Recursive placeholder found.
 /// </summary>
 /// <param name="placeholderTag">The placeholder tag.</param>
 /// <param name="openXmlElementDataContext">The open XML element data context.</param>
 protected abstract void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext);
        /// <summary>
        /// Recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string refTagValue = string.Empty;
            string refControlValue = string.Empty;

            XPathNavigator navigator = Parse(openXmlElementDataContext, tagPlaceHolderValue, ref refTagValue, ref refControlValue);

            if (navigator != null)
            {
                XPathNodeIterator nodeIterator = navigator.SelectDescendants("field", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI, false);

                while (nodeIterator.MoveNext())
                {
                    XmlDocument e = new XmlDocument();
                    e.LoadXml(nodeIterator.Current.OuterXml);
                    SdtElement clonedElement = this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = e.DocumentElement });
                }
            }

            openXmlElementDataContext.Element.Remove();
        }
        /// <summary>
        /// Parses the specified open XML element data context.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        /// <param name="tagPlaceHolderValue">The tag place holder value.</param>
        /// <param name="refTagValue">The ref tag value.</param>
        /// <param name="refControlValue">The ref control value.</param>
        /// <returns></returns>
        private XPathNavigator Parse(OpenXmlElementDataContext openXmlElementDataContext, string tagPlaceHolderValue, ref string refTagValue, ref string refControlValue)
        {
            XPathNavigator contentControlsNavigator = (this.GetDataContext() as XmlNode).CreateNavigator();
            XPathNodeIterator contentControlsIterator = contentControlsNavigator.SelectDescendants("contentControl", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI, true);

            while (contentControlsIterator.MoveNext())
            {
                string contentControlTagAttr = contentControlsIterator.Current.GetAttribute("tag", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);
                refControlValue = contentControlsIterator.Current.GetAttribute("refControlValue", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);
                refTagValue = contentControlsIterator.Current.GetAttribute("refTagValue", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);

                if ((!string.IsNullOrEmpty(contentControlTagAttr)) && contentControlTagAttr == tagPlaceHolderValue)
                {
                    XPathNavigator navigator = (openXmlElementDataContext.DataContext as XmlNode).CreateNavigator();
                    XPathNodeIterator iterator = navigator.SelectDescendants("field", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI, true);

                    while (iterator.MoveNext())
                    {
                        string attr = iterator.Current.GetAttribute("contentControlTagREFS", (openXmlElementDataContext.DataContext as XmlNode).NamespaceURI);

                        if (!string.IsNullOrEmpty(attr))
                        {
                            if ((new List<string>(attr.Split(' '))).Contains(contentControlTagAttr))
                            {
                                return iterator.Current;
                            }
                        }
                    }

                    break;
                }
            }

            return null;
        }
        /// <summary>
        /// Recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case PurchaseDetail:
                    bubblePlaceHolder = false;

                    foreach (PurchaseDetail purchaseDetail in ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).PurchaseDetails)
                    {
                        SdtElement clonedElement = this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = purchaseDetail });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
                case ReferencePurchase:
                    bubblePlaceHolder = false;

                    foreach (ReferencePurchase referencePurchase in ((openXmlElementDataContext.DataContext) as PhieuMuaHangDataContext).ReferencePurchases)
                    {
                        SdtElement clonedElement = this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = referencePurchase });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                base.RecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
        }
 /// <summary>
 /// Ignore placeholder found.
 /// </summary>
 /// <param name="placeholderTag">The placeholder tag.</param>
 /// <param name="openXmlElementDataContext">The open XML element data context.</param>
 protected override void IgnorePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
 {
 }
Example #28
0
 /// <summary>
 /// Container placeholder found.
 /// </summary>
 /// <param name="placeholderTag">The placeholder tag.</param>
 /// <param name="openXmlElementDataContext">The open XML element data context.</param>
 protected abstract void ContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document);
        /// <summary>
        /// Picture container placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The picture container placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void PictureContainerPlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue;
            string tagGuidPart;
            DocumentGenerator.GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case BuildState:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildState;
                    switch (tagValue.ToUpper())
                    {
                        case "SUCCEEDED":
                            content = @"Graphics\Succeeded.JPG";
                            break;
                        case "PARTIALLYSUCCEEDED":
                            content = @"Graphics\PartiallySucceeded.PNG";
                            break;
                        case "FAILED":
                            content = @"Graphics\Failed.JPG";
                            break;
                        case "STOPPED":
                            content = @"Graphics\Stopped.PNG";
                            break;
                        default:
                            content = @"Graphics\NotStarted.JPG";
                            break;
                    }

                    break;
                case BuildRetainIndefinitely:
                    bubblePlaceHolder = false;
                    tagValue = (openXmlElementDataContext.DataContext as BuildDetail).Build.BuildRetainIndefinitely;
                    switch (tagValue.ToUpper())
                    {
                        case "TRUE":
                            content = @"Graphics\Lock.PNG";
                            break;
                        case "FALSE":
                            content = @"Graphics\Unlock.PNG";
                            break;
                    }

                    break;
                case CheckInInformationImg:
                    bubblePlaceHolder = false;
                    content = @"Graphics\Changeset.PNG";
                    break;
                case TestResultDetailsImage:
                    bubblePlaceHolder = false;
                    content = @"Graphics\TestSuite.Png";
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                // base.
                this.NonRecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
            else
            {
                // Set the tag for the content control
                if (!string.IsNullOrEmpty(tagValue))
                {
                    DocumentGenerator.SetTagValue(openXmlElementDataContext.Element as SdtElement, DocumentGenerator.GetFullTagValue(tagPlaceHolderValue, tagValue));
                }

                // Set the content for the content control
                DocumentGenerator.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
            }
        }
 protected override void IgnorePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
 {
     throw new NotImplementedException();
 }
        /// <summary>
        /// Recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            // Reuse base class code and handle only tags unavailable in base class
            bool bubblePlaceHolder = true;

            switch (tagPlaceHolderValue)
            {
                case VendorDetailRow:
                    bubblePlaceHolder = false;

                    foreach (Vendor testB in ((openXmlElementDataContext.DataContext) as Order).vendors)
                    {
                        SdtElement clonedElement = this.CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = testB });
                    }

                    openXmlElementDataContext.Element.Remove();
                    break;
            }

            if (bubblePlaceHolder)
            {
                // Use base class code as tags are already defined in base class.
                base.RecursivePlaceholderFound(placeholderTag, openXmlElementDataContext);
            }
        }
        /// <summary>
        /// Non recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue;
            string tagGuidPart;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            var content = string.Empty;

            if (openXmlElementDataContext.DataContext is FinalRTReport)
            {
                var row = openXmlElementDataContext.DataContext as FinalRTReport;

                switch (tagPlaceHolderValue)
                {
                    case FPNo:
                        content = row.FixedPattern.FPNo;
                        break;
                    case CustomerName:
                        content = row.FixedPattern.Customer.CustomerName;
                        break;
                    case CustomerAddress:
                        content = row.FixedPattern.Customer.Address;
                        break;
                    case CustomerEmail:
                        content = row.FixedPattern.Customer.Email;
                        break;
                    case CustomerPhone:
                        content = row.FixedPattern.Customer.PhoneNo;
                        break;
                    case ReportNo:
                        content = row.ReportNo;
                        break;
                    case Description:
                        content = row.FixedPattern.Description;
                        break;
                    case Coverage:
                        content = row.Coverage.CoverageName;
                        break;
                    case ProcedureRef:
                        content = row.ProcedureRef;
                        break;
                    case Source:
                        content = row.Source;
                        break;
                    case SourceSize:
                        content = row.SourceSize;
                        break;
                    case Strength:
                        content = row.Strength;
                        break;
                    case Specification:
                        content = row.Specifications;
                        break;
                    case DrawingNo:
                        content = row.DrawingNo;
                        break;
                    case LeadScreen:
                        content = row.LeadScreen;
                        break;
                    case HeatNo:
                        content = row.HeatNo;
                        break;
                    case Date:
                        content = row.ReportDate;
                        break;
                    case Film:
                        content = row.Film;
                        break;
                    case RTNo:
                        content = row.RTNo;
                        break;
                    case DateOfTest:
                        content = row.DateOfTest;
                        break;
                    case Evaluation:
                        content = row.EvaluationAsPer;
                        break;
                    case Viewing:
                        content = row.Viewing;
                        break;
                    case Acceptance:
                        content = row.AcceptanceAsPer;
                        break;
                    case TotalArea:
                        content = row.TotalArea;
                        break;
                    case TotalFilmCount:
                        content = row.TotalFilmCount;
                        break;
                    case ExposedTotalArea:
                        content = row.ExposedTotalArea;
                        break;
                    case RetakeTotalArea:
                        content = row.RetakeTotalArea;
                        break;

                    case Result:
                        content = row.Status.Status;
                        break;
                    case Logo:
                        //get the company logo
                        var logo = row.GetCompanyLogo();
                        SetLogo(openXmlElementDataContext.Element as SdtElement, logo, document);
                        break;
                    case CustomerLogo:
                        var customerLogo = row.GetCustomerLogo();
                        SetLogo(openXmlElementDataContext.Element as SdtElement, customerLogo, document);
                        break;
                    case ReportTypeNo:
                        content = row.ReportTypeNo;
                        break;
                }
            }
            else if (openXmlElementDataContext.DataContext is FinalRTReportRow)
            {
                var reportRow = openXmlElementDataContext.DataContext as FinalRTReportRow;

                switch (tagPlaceHolderValue)
                {
                    case SlNo:
                        content = reportRow.SlNo.ToString();
                        break;
                    case Technique:
                        content = reportRow.Technique;
                        break;
                    case LocationSegment:
                        content = reportRow.LocationAndSegment;
                        break;
                    case Location:
                        content = reportRow.Location;
                        break;
                    case Segment:
                        content = reportRow.Segment;
                        break;
                    case Thickness:
                        content = reportRow.ThicknessRange.ToString();
                        break;
                    case SFD:
                        content = reportRow.SFD.ToString();
                        break;
                    case Designation:
                        content = reportRow.Designation;
                        break;
                    case Sensitivity:
                        content = reportRow.Sensitivity;
                        break;
                    case Density:
                        content = reportRow.Density;
                        break;
                    case FilmSize:
                        content = reportRow.FilmSizeWithCount;
                        break;
                    case Observation:
                        content = reportRow.Observations;
                        break;
                    case Finding:
                        content = reportRow.Findings;
                        break;
                    case Classification:
                        content = reportRow.Classifications;
                        break;
                    case Remarks:
                        content = reportRow.RemarkText;
                        break;
                }
            }
            else if (openXmlElementDataContext.DataContext is KeyValuePair<String, float>)
            {
                var keyvalue = (KeyValuePair<String, float>)openXmlElementDataContext.DataContext;
                switch (tagPlaceHolderValue)
                {
                    case Isotope:
                        content = keyvalue.Key;
                        break;
                    case Area:
                        content = keyvalue.Value.ToString();
                        break;
                }
            }

            //just avoid replacing the logo with blank text
            if (tagPlaceHolderValue != Logo && tagPlaceHolderValue != CustomerLogo)
            {
                // Set the content for the content control
                SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
            }
        }
Example #33
0
 /// <summary>
 /// Recursive placeholder found.
 /// </summary>
 /// <param name="placeholderTag">The placeholder tag.</param>
 /// <param name="openXmlElementDataContext">The open XML element data context.</param>
 protected abstract void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document);
        /// <summary>
        /// Recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue;
            string tagGuidPart;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            switch (tagPlaceHolderValue)
            {
                case RGReportRow:
                    foreach (var row in ((FinalRTReport) (openXmlElementDataContext.DataContext)).FinalRTReportRows)
                    {
                        CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = row }, document);
                    }
                    openXmlElementDataContext.Element.Remove();
                    break;
                case IsotopeCollection:
                case AreaCollection:
                    foreach (var pair in ((FinalRTReport) (openXmlElementDataContext.DataContext)).EnergyAreas)
                    {
                        CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = pair }, document);
                    }
                    openXmlElementDataContext.Element.Remove();
                    break;
                case ExposedIsotopeCollection:
                case ExposedAreaCollection:
                    foreach (var pair in ((FinalRTReport)(openXmlElementDataContext.DataContext)).ExposedEnergyAreas)
                    {
                        CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = pair }, document);
                    }
                    openXmlElementDataContext.Element.Remove();
                    break;
                case RetakeIsotopeCollection:
                case RetakeAreaCollection:
                    foreach (var pair in ((FinalRTReport)(openXmlElementDataContext.DataContext)).RetakeEnergyAreas)
                    {
                        CloneElementAndSetContentInPlaceholders(new OpenXmlElementDataContext() { Element = openXmlElementDataContext.Element, DataContext = pair }, document);
                    }
                    openXmlElementDataContext.Element.Remove();
                    break;
            }
        }
Example #35
0
        /// <summary>
        /// Determines whether [is content control] [the specified open XML element data context].
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        /// <returns>
        ///   <c>true</c> if [is content control] [the specified open XML element data context]; otherwise, <c>false</c>.
        /// </returns>
        private bool IsContentControl(OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null)
            {
                return false;
            }

            return openXmlElementDataContext.Element is SdtBlock || openXmlElementDataContext.Element is SdtRun || openXmlElementDataContext.Element is SdtRow || openXmlElementDataContext.Element is SdtCell;
        }
 /// <summary>
 /// Recursive placeholder found.
 /// </summary>
 /// <param name="placeholderTag">The placeholder tag.</param>
 /// <param name="openXmlElementDataContext">The open XML element data context.</param>
 protected abstract void RecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext);
Example #37
0
        /// <summary>
        /// Populates the other open XML elements.
        /// </summary>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        private void PopulateOtherOpenXmlElements(OpenXmlElementDataContext openXmlElementDataContext, WordprocessingDocument document)
        {
            if (openXmlElementDataContext.Element is OpenXmlCompositeElement && openXmlElementDataContext.Element.HasChildren)
            {
                List<OpenXmlElement> elements = openXmlElementDataContext.Element.Elements().ToList();

                foreach (var element in elements)
                {
                    if (element is OpenXmlCompositeElement)
                    {
                        this.SetContentInPlaceholders(new OpenXmlElementDataContext() { Element = element, DataContext = openXmlElementDataContext.DataContext }, document);
                    }
                }
            }
        }
        /// <summary>
        /// Non recursive placeholder found.
        /// </summary>
        /// <param name="placeholderTag">The placeholder tag.</param>
        /// <param name="openXmlElementDataContext">The open XML element data context.</param>
        protected override void NonRecursivePlaceholderFound(string placeholderTag, OpenXmlElementDataContext openXmlElementDataContext)
        {
            if (openXmlElementDataContext == null || openXmlElementDataContext.Element == null || openXmlElementDataContext.DataContext == null)
            {
                return;
            }

            string tagPlaceHolderValue = string.Empty;
            string tagGuidPart = string.Empty;
            GetTagValue(openXmlElementDataContext.Element as SdtElement, out tagPlaceHolderValue, out tagGuidPart);

            string tagValue = string.Empty;
            string content = string.Empty;

            switch (tagPlaceHolderValue)
            {
                case PlaceholderNonRecursiveA:
                    tagValue = ((openXmlElementDataContext.DataContext) as Vendor).Id.ToString();
                    content = ((openXmlElementDataContext.DataContext) as Vendor).Name;
                    break;
                case PlaceholderNonRecursiveB:
                    tagValue = ((openXmlElementDataContext.DataContext) as Item).Id.ToString();
                    content = ((openXmlElementDataContext.DataContext) as Item).Name;
                    break;
                case PlaceholderNonRecursiveC:
                    tagValue = ((openXmlElementDataContext.DataContext) as Order).Id.ToString();
                    content = ((openXmlElementDataContext.DataContext) as Order).Name;
                    break;
                case PlaceholderNonRecursiveD:
                    tagValue = ((openXmlElementDataContext.DataContext) as Order).Id.ToString();
                    content = ((openXmlElementDataContext.DataContext) as Order).Description;
                    break;
            }

            // Set the tag for the content control
            if (!string.IsNullOrEmpty(tagValue))
            {
                this.SetTagValue(openXmlElementDataContext.Element as SdtElement, GetFullTagValue(tagPlaceHolderValue, tagValue));
            }

            // Set text without data binding
            this.SetContentOfContentControl(openXmlElementDataContext.Element as SdtElement, content);
        }