/// <summary> /// Ensure a catalog /// </summary> /// <param name="web">The web object</param> /// <param name="catalog">The catalog</param> /// <returns>The list object</returns> public SPList EnsureCatalog(SPWeb web, CatalogInfo catalog) { // Set current culture to be able to set the "Title" of the list Thread.CurrentThread.CurrentUICulture = new CultureInfo((int)web.Language); // Create the list if doesn't exists var list = this.listHelper.EnsureList(web, catalog); if (catalog.TaxonomyFieldMap == null) { // Set the list as catalog without navigation if (catalog.IsAnonymous) { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name), true); } else { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name)); } } else { // Set the list as catalog with navigation term if (catalog.IsAnonymous) { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name), catalog.TaxonomyFieldMap.InternalName, true); } else { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name), catalog.TaxonomyFieldMap.InternalName); } } return(list); }
/// <summary> /// Ensure a catalog /// </summary> /// <param name="web">The web object</param> /// <param name="catalog">The catalog</param> /// <returns>The list object</returns> public SPList EnsureCatalog(SPWeb web, CatalogInfo catalog) { // Set current culture to be able to set the "Title" of the list Thread.CurrentThread.CurrentUICulture = new CultureInfo((int)web.Language); // Create the list if doesn't exists var list = this.listHelper.EnsureList(web, catalog); if (catalog.TaxonomyFieldMap == null) { // Set the list as catalog without navigation if (catalog.IsAnonymous) { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name), true); } else { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name)); } } else { // Set the list as catalog with navigation term if (catalog.IsAnonymous) { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name), catalog.TaxonomyFieldMap.InternalName, true); } else { this.SetListAsCatalog(list, catalog.ManagedProperties.Select(x => x.Name), catalog.TaxonomyFieldMap.InternalName); } } return list; }
public CatalogConnectionInfo( CatalogInfo catalog, string catalogTaxonomyManagedProperty, bool rewriteCatalogItemUrls, bool isManualCatalogItemUrlRewriteTemplate, bool isReusedWithPinning, string catalogItemUrlRewriteTemplate) { this.Catalog = catalog; this.CatalogTaxonomyManagedProperty = catalogTaxonomyManagedProperty; this.RewriteCatalogItemUrls = rewriteCatalogItemUrls; this.IsManualCatalogItemUrlRewriteTemplate = isManualCatalogItemUrlRewriteTemplate; this.IsReusedWithPinning = isReusedWithPinning; this.CatalogItemUrlRewriteTemplate = catalogItemUrlRewriteTemplate; // By default, crush any existing matching catalog connection with our own definition this.OverwriteIfAlreadyExists = true; }
public void CatalogInfo_ShouldSupportStringSerializationAndDeserialization() { var serializer = this.GetSerializer(); var taxoFieldInfo = new TaxonomyFieldInfo("TaxoField", Guid.NewGuid(), "TaxoFieldName", "TaxoFieldDescr", "GroupKey"); var objectToSerialize = new CatalogInfo("pathto/list", "NameKey", "DescrKey") { ContentTypes = new[] { new ContentTypeInfo(ContentTypeIdBuilder.CreateChild(BuiltInContentTypes.Item, Guid.NewGuid()), "CT1Name", "CT1Descr", "GroupKey"), new ContentTypeInfo(ContentTypeIdBuilder.CreateChild(BuiltInContentTypes.Item, Guid.NewGuid()), "CT2Name", "CT2Descr", "GroupKey") }, DraftVisibilityType = Microsoft.SharePoint.DraftVisibilityType.Approver, TaxonomyFieldMap = taxoFieldInfo, Overwrite = true, ManagedProperties = new[] { new ManagedPropertyInfo("Title") { SortableType = Microsoft.Office.Server.Search.Administration.SortableType.Enabled }, new ManagedPropertyInfo("ows_taxid_TaxoFieldName") { SortableType = Microsoft.Office.Server.Search.Administration.SortableType.Latent, Refinable = true } }, ListTemplateInfo = BuiltInListTemplates.CustomList, FieldDefinitions = new[] { taxoFieldInfo } }; string serializedRepresentation = serializer.Serialize(objectToSerialize); var deserializedObject = serializer.Deserialize<CatalogInfo>(serializedRepresentation); Assert.AreEqual(objectToSerialize.DisplayNameResourceKey, deserializedObject.DisplayNameResourceKey); Assert.AreEqual(objectToSerialize.DescriptionResourceKey, deserializedObject.DescriptionResourceKey); Assert.AreEqual(objectToSerialize.GroupResourceKey, deserializedObject.GroupResourceKey); Assert.AreEqual(objectToSerialize.DraftVisibilityType, deserializedObject.DraftVisibilityType); Assert.AreEqual(objectToSerialize.TaxonomyFieldMap.Id, deserializedObject.TaxonomyFieldMap.Id); Assert.AreEqual(objectToSerialize.TaxonomyFieldMap.InternalName, deserializedObject.TaxonomyFieldMap.InternalName); Assert.AreEqual(objectToSerialize.Overwrite, deserializedObject.Overwrite); // Check content types Assert.AreEqual(2, deserializedObject.ContentTypes.Count); Assert.AreEqual(objectToSerialize.ContentTypes.ElementAt(0).ContentTypeId, deserializedObject.ContentTypes.ElementAt(0).ContentTypeId); Assert.AreEqual(objectToSerialize.ContentTypes.ElementAt(0).DisplayNameResourceKey, deserializedObject.ContentTypes.ElementAt(0).DisplayNameResourceKey); Assert.AreEqual(objectToSerialize.ContentTypes.ElementAt(1).ContentTypeId, deserializedObject.ContentTypes.ElementAt(1).ContentTypeId); Assert.AreEqual(objectToSerialize.ContentTypes.ElementAt(1).DisplayNameResourceKey, deserializedObject.ContentTypes.ElementAt(1).DisplayNameResourceKey); // Managed properties Assert.AreEqual(2, deserializedObject.ManagedProperties.Count); Assert.AreEqual(objectToSerialize.ManagedProperties.ElementAt(0).Name, deserializedObject.ManagedProperties.ElementAt(0).Name); Assert.AreEqual(objectToSerialize.ManagedProperties.ElementAt(0).SortableType, deserializedObject.ManagedProperties.ElementAt(0).SortableType); Assert.AreEqual(objectToSerialize.ManagedProperties.ElementAt(1).Name, deserializedObject.ManagedProperties.ElementAt(1).Name); Assert.AreEqual(objectToSerialize.ManagedProperties.ElementAt(1).SortableType, deserializedObject.ManagedProperties.ElementAt(1).SortableType); Assert.AreEqual(objectToSerialize.ManagedProperties.ElementAt(1).Refinable, deserializedObject.ManagedProperties.ElementAt(1).Refinable); // List template Assert.AreEqual(objectToSerialize.ListTemplateInfo.ListTempateTypeId, deserializedObject.ListTemplateInfo.ListTempateTypeId); Assert.AreEqual(objectToSerialize.ListTemplateInfo.FeatureId, deserializedObject.ListTemplateInfo.FeatureId); // Field defs Assert.AreEqual(1, deserializedObject.FieldDefinitions.Count); Assert.AreEqual(objectToSerialize.FieldDefinitions.ElementAt(0).Id, deserializedObject.FieldDefinitions.ElementAt(0).Id); Assert.AreEqual(objectToSerialize.FieldDefinitions.ElementAt(0).InternalName, deserializedObject.FieldDefinitions.ElementAt(0).InternalName); Assert.AreEqual(objectToSerialize.FieldDefinitions.ElementAt(0).AssociatedValueType, deserializedObject.FieldDefinitions.ElementAt(0).AssociatedValueType); }