Example #1
0
        public void TestAddFacetValueExistingFacetCategoryAlreadyInCollection()
        {
            PivotItem item = sampleCollection1.Items[1];

            item.AddFacetValues("Subject", "New Car");

            AssertEqual("Vehicle", item.GetAllFacetValues("Subject")[0]);
            AssertEqual("New Car", item.GetAllFacetValues("Subject")[1]);
            AssertEqual(2, item.GetAllFacetValues("Subject").Count);
            AssertEqual(2, item.FacetCategories.Count);
        }
Example #2
0
        public void TestAddFacetValueExistingFacetCategory()
        {
            emptyCollection.FacetCategories.Add(new PivotFacetCategory("bravo", PivotFacetType.String));

            PivotItem item = new PivotItem("alpha", emptyCollection);
            item.AddFacetValues("bravo", "charlie");
            item.AddFacetValues("bravo", "delta");

            AssertEqual("charlie", item.GetAllFacetValues("bravo")[0]);
            AssertEqual("delta", item.GetAllFacetValues("bravo")[1]);
            AssertEqual(2, item.GetAllFacetValues("bravo").Count);
            AssertEqual(1, item.FacetCategories.Count());
        }
Example #3
0
        public void TestAddFacetValueExistingFacetCategory()
        {
            emptyCollection.FacetCategories.Add(new PivotFacetCategory("bravo", PivotFacetType.String));

            PivotItem item = new PivotItem("alpha", emptyCollection);

            item.AddFacetValues("bravo", "charlie");
            item.AddFacetValues("bravo", "delta");

            AssertEqual("charlie", item.GetAllFacetValues("bravo")[0]);
            AssertEqual("delta", item.GetAllFacetValues("bravo")[1]);
            AssertEqual(2, item.GetAllFacetValues("bravo").Count);
            AssertEqual(1, item.FacetCategories.Count());
        }
Example #4
0
        /// <summary>
        /// Creates a copy of this image creator's <see cref="HtmlTemplate"/> by replacing all the tags with appropriate
        /// values based upon a given image.
        /// </summary>
        /// <param name="item">the item containing the specific data to use</param>
        /// <returns>an HTML document with the given item's data</returns>
        public String InstantiateTemplate(PivotItem item)
        {
            String text = m_htmlTemplate;

            text = this.Replace(text, "{id}", item.Id);
            text = this.Replace(text, "{name}", item.Name ?? "");
            if (item.Image != null)
            {
                text = this.Replace(text, "{image}", item.Image.SourcePath ?? "");
            }
            text = this.Replace(text, "{href}", item.Href ?? "");
            text = this.Replace(text, "{description}", item.Description ?? "");

            foreach (String facetCategoryName in item.FacetCategories)
            {
                String replaceStringBase = "{" + facetCategoryName;

                String textValue = item.GetFacetValueAsString(facetCategoryName);
                text = this.Replace(text, replaceStringBase + "}", textValue);

                text = this.PerformJoinInstantiation(facetCategoryName, item, text);

                List <IComparable> values = new List <IComparable>(item.GetAllFacetValues(facetCategoryName));
                int index = 0;
                while (true)
                {
                    String replaceString = replaceStringBase + ":" + index + "}";
                    if (text.IndexOf(replaceString, StringComparison.InvariantCultureIgnoreCase) == -1)
                    {
                        break;
                    }

                    textValue = "";
                    if (index < values.Count)
                    {
                        PivotFacetCategory facetCategory = item.CollectionDefinition.FacetCategories[facetCategoryName];
                        if (facetCategory.Format != null)
                        {
                            textValue = String.Format("{0:" + facetCategory.Format + "}", values[index]);
                        }
                        else
                        {
                            textValue = facetCategory.Type.FormatValue(values[index]);
                        }
                    }
                    text = this.Replace(text, replaceString, textValue);
                    index++;
                }
            }
            return(text);
        }
        public void TestAddFacetValueNewFacetCategoryAlreadyInCollectionInferFacetCategories()
        {
            collection.InferFacetCategories = true;
            PivotItem item = collection.Items[1];

            item.AddFacetValues("alpha", "bravo");

            AssertEqual("bravo", item.GetFacetValue("alpha"));
            AssertEqual(1, item.GetAllFacetValues("alpha").Count);
            AssertEqual(3, item.FacetCategories.Count);

            AssertEqual("alpha", collection.FacetCategories[2].Name);
            AssertEqual(PivotFacetType.String, collection.FacetCategories[2].Type);
            AssertEqual(3, collection.FacetCategories.Count);
        }
        private void WriteFacet(XmlWriter xmlWriter, String facetCategoryName, PivotItem item)
        {
            PivotFacetCategory facetCategory = item.CollectionDefinition.FacetCategories[facetCategoryName];

            xmlWriter.WriteAttributeString("Name", facetCategoryName);
            foreach (IComparable value in item.GetAllFacetValues(facetCategoryName))
            {
                if (facetCategory.Type == PivotFacetType.Link)
                {
                    PivotLink linkValue = (PivotLink)value;
                    xmlWriter.WriteStartElement(facetCategory.Type.ToString());
                    if (linkValue.Title != null)
                    {
                        xmlWriter.WriteAttributeString("Name", linkValue.Title);
                    }
                    if (linkValue.Url != null)
                    {
                        xmlWriter.WriteAttributeString("Href", linkValue.Url);
                    }
                    xmlWriter.WriteEndElement(); // FacetType
                }
                else if (facetCategory.Type == PivotFacetType.DateTime)
                {
                    xmlWriter.WriteStartElement(facetCategory.Type.ToString());
                    xmlWriter.WriteAttributeString("Value", ((DateTime)value).ToString("s"));
                    xmlWriter.WriteEndElement(); // FacetType
                }
                else if (facetCategory.Type == PivotFacetType.Number)
                {
                    xmlWriter.WriteStartElement(facetCategory.Type.ToString());
                    xmlWriter.WriteAttributeString("Value", value.ToString());
                    xmlWriter.WriteEndElement(); // FacetType
                }
                else
                {
                    xmlWriter.WriteStartElement(facetCategory.Type.ToString());
                    xmlWriter.WriteAttributeString("Value", item.ConvertFacetValueToString(facetCategoryName, value));
                    xmlWriter.WriteEndElement(); // FacetType
                }
            }
        }
Example #7
0
        /// <summary>
        /// Creates a copy of this image creator's <see cref="HtmlTemplate"/> by replacing all the tags with appropriate
        /// values based upon a given image.
        /// </summary>
        /// <param name="item">the item containing the specific data to use</param>
        /// <returns>an HTML document with the given item's data</returns>
        public String InstantiateTemplate(PivotItem item)
        {
            String text = m_htmlTemplate;
            text = this.Replace(text, "{id}", item.Id);
            text = this.Replace(text, "{name}", item.Name ?? "");
            if (item.Image != null)
            {
                text = this.Replace(text, "{image}", item.Image.SourcePath ?? "");
            }
            text = this.Replace(text, "{href}", item.Href ?? "");
            text = this.Replace(text, "{description}", item.Description ?? "");

            foreach (String facetCategoryName in item.FacetCategories)
            {
                String replaceStringBase = "{" + facetCategoryName;

                String textValue = item.GetFacetValueAsString(facetCategoryName);
                text = this.Replace(text, replaceStringBase + "}", textValue);

                text = this.PerformJoinInstantiation(facetCategoryName, item, text);

                List<IComparable> values = new List<IComparable>(item.GetAllFacetValues(facetCategoryName));
                int index = 0;
                while (true)
                {
                    String replaceString = replaceStringBase + ":" + index + "}";
                    if (text.IndexOf(replaceString, StringComparison.InvariantCultureIgnoreCase) == -1) break;

                    textValue = "";
                    if (index < values.Count)
                    {
                        PivotFacetCategory facetCategory = item.CollectionDefinition.FacetCategories[facetCategoryName];
                        if (facetCategory.Format != null)
                        {
                            textValue = String.Format("{0:" + facetCategory.Format + "}", values[index]);
                        }
                        else
                        {
                            textValue = facetCategory.Type.FormatValue(values[index]);
                        }
                    }
                    text = this.Replace(text, replaceString, textValue);
                    index++;
                }
            }
            return text;
        }
 private void WriteFacet(XmlWriter xmlWriter, String facetCategoryName, PivotItem item)
 {
     PivotFacetCategory facetCategory = item.CollectionDefinition.FacetCategories[facetCategoryName];
     xmlWriter.WriteAttributeString("Name", facetCategoryName);
     foreach (IComparable value in item.GetAllFacetValues(facetCategoryName))
     {
         if (facetCategory.Type == PivotFacetType.Link)
         {
             PivotLink linkValue = (PivotLink)value;
             xmlWriter.WriteStartElement(facetCategory.Type.ToString());
             if (linkValue.Title != null) xmlWriter.WriteAttributeString("Name", linkValue.Title);
             if (linkValue.Url != null) xmlWriter.WriteAttributeString("Href", linkValue.Url);
             xmlWriter.WriteEndElement(); // FacetType
         }
         else if (facetCategory.Type == PivotFacetType.DateTime)
         {
             xmlWriter.WriteStartElement(facetCategory.Type.ToString());
             xmlWriter.WriteAttributeString("Value", ((DateTime)value).ToString("s"));
             xmlWriter.WriteEndElement(); // FacetType
         }
         else if (facetCategory.Type == PivotFacetType.Number)
         {
             xmlWriter.WriteStartElement(facetCategory.Type.ToString());
             xmlWriter.WriteAttributeString("Value", value.ToString());
             xmlWriter.WriteEndElement(); // FacetType
         }
         else
         {
             xmlWriter.WriteStartElement(facetCategory.Type.ToString());
             xmlWriter.WriteAttributeString("Value", item.ConvertFacetValueToString(facetCategoryName, value));
             xmlWriter.WriteEndElement(); // FacetType
         }
     }
 }