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); }
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()); }
/// <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 } } }
/// <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 } } }