protected Group FindGroup(TermStoreModelHost termStoreHost, TaxonomyTermGroupDefinition groupModel) { Group currentGroup = null; var termStore = termStoreHost.HostTermStore; if (groupModel.IsSiteCollectionGroup) { currentGroup = FindSiteCollectionGroup(termStoreHost, groupModel); return currentGroup; } //if (groupModel.IsSystemGroup) //{ // currentGroup = FindSystemGroup(termStoreHost, groupModel); // return currentGroup; //} if (groupModel.Id.HasValue) currentGroup = termStore.GetGroup(groupModel.Id.Value); else if (!string.IsNullOrEmpty(groupModel.Name)) currentGroup = termStore.Groups.FirstOrDefault(g => g.Name.ToUpper() == groupModel.Name.ToUpper()); return currentGroup; }
protected Group FindSiteCollectionGroup(TermStoreModelHost termStoreHost, TaxonomyTermGroupDefinition groupModel) { var termStore = termStoreHost.HostTermStore; #if NET35 return termStore.GetSiteCollectionGroup(termStoreHost.HostSite); #endif #if !NET35 return termStore.GetSiteCollectionGroup(termStoreHost.HostSite, true); #endif }
private void DeployTaxonomyGroup(object modelHost, TermStoreModelHost siteModelHost, TaxonomyTermGroupDefinition groupModel) { var termStore = siteModelHost.HostTermStore; var currentGroup = FindGroup(siteModelHost, groupModel); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = currentGroup, ObjectType = typeof(Group), ObjectDefinition = groupModel, ModelHost = modelHost }); if (currentGroup == null) { TraceService.Information((int)LogEventId.ModelProvisionProcessingNewObject, "Processing new Term Group"); #if !NET35 currentGroup = groupModel.Id.HasValue ? termStore.CreateGroup(groupModel.Name, groupModel.Id.Value) : termStore.CreateGroup(groupModel.Name); #endif #if NET35 // SP2010 API does not support creating groups with particular ID currentGroup = termStore.CreateGroup(groupModel.Name); #endif InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = currentGroup, ObjectType = typeof(Group), ObjectDefinition = groupModel, ModelHost = modelHost }); } else { TraceService.Information((int)LogEventId.ModelProvisionProcessingExistingObject, "Processing existing Term Group"); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = currentGroup, ObjectType = typeof(Group), ObjectDefinition = groupModel, ModelHost = modelHost }); } siteModelHost.HostTermStore.CommitAll(); }
protected Group FindSystemGroup(TermStoreModelHost termStoreHost, TaxonomyTermGroupDefinition groupModel) { return termStoreHost.HostTermStore.SystemGroup; }
protected Group FindSiteCollectionGroup(TermStoreModelHost termStoreHost, TaxonomyTermGroupDefinition groupModel) { var termStore = termStoreHost.HostTermStore; return termStore.GetSiteCollectionGroup(termStoreHost.HostSite); }