Example #1
0
 public static TermSet LookupTermSet(ClientRuntimeContext context, Site site,
                                     TermStore termStore, TaxonomyFieldDefinition taxFieldModel)
 {
     return(LookupTermSet(context, termStore, site,
                          taxFieldModel.TermGroupName, taxFieldModel.TermGroupId, taxFieldModel.IsSiteCollectionGroup,
                          taxFieldModel.TermSetName, taxFieldModel.TermSetId, taxFieldModel.TermSetLCID));
 }
Example #2
0
 public static TermSet LookupTermSet(
     ClientContext clientContext,
     TermStore termStore,
     TaxonomyFieldDefinition taxFieldModel)
 {
     return(LookupTermSet(clientContext, clientContext.Site, termStore, taxFieldModel));
 }
Example #3
0
 public static TermSet LookupTermSet(TermStore tesmStore, TaxonomyFieldDefinition taxFieldModel)
 {
     return(LookupTermSet(tesmStore,
                          taxFieldModel.TermSetName,
                          taxFieldModel.TermSetId,
                          taxFieldModel.TermSetLCID
                          ));
 }
Example #4
0
        public static TermSet LookupTermSet(
            SiteModelHost currentSiteModelHost,
            TermStore termStore,
            TaxonomyFieldDefinition taxFieldModel)
        {
            var storeContext = currentSiteModelHost.HostClientContext;

            return(LookupTermSet(storeContext, termStore, taxFieldModel));
        }
Example #5
0
 private void Create()
 {
     belongToProjectField       = GetBelognToProjectField();
     documentResponsibleField   = GetDocumentResponsibleField();
     documentTypeField          = GetDocumentTypeField();
     expirationDateField        = GetExpirationDateField();
     projectDocumentsList       = GetProjectDocumentsList();
     projectDocumentContemtType = GetProjectDocumentContemtType();
     projectDocumentsListView   = GetProjectDocumentsListView();
 }
        public void TaxonomyFieldDefinition_AllowMultipleValues_ShouldUpdate_FieldType()
        {
            var def = new TaxonomyFieldDefinition();

            def.IsMulti = false;
            Assert.IsTrue(def.FieldType == BuiltInFieldTypes.TaxonomyFieldType);

            def.IsMulti = true;
            Assert.IsTrue(def.FieldType == BuiltInFieldTypes.TaxonomyFieldTypeMulti);
        }
Example #7
0
        public static Term LookupTerm(SPSite site, TermStore tesmStore, TaxonomyFieldDefinition taxFieldModel)
        {
            Group currentGroup = null;

            var termGroupName         = taxFieldModel.TermGroupName;
            var groupId               = taxFieldModel.TermGroupId;
            var isSiteCollectionGroup = taxFieldModel.IsSiteCollectionGroup;

            if (!string.IsNullOrEmpty(termGroupName))
            {
                currentGroup = tesmStore.Groups.FirstOrDefault(g => g.Name.ToUpper() == termGroupName.ToUpper());
            }
            else if (groupId != null && groupId.HasGuidValue())
            {
                currentGroup = tesmStore.GetGroup(groupId.Value);
            }
            else if (isSiteCollectionGroup.HasValue && isSiteCollectionGroup.Value)
            {
                currentGroup = tesmStore.GetSiteCollectionGroup(site);
            }

            // TODO
            // that should also check if the TermSet is there, so to scope the term

            if (currentGroup != null)
            {
                if (taxFieldModel.TermId.HasValue)
                {
                    return(tesmStore.GetTerm(taxFieldModel.TermId.Value));
                }

                if (!string.IsNullOrEmpty(taxFieldModel.TermName))
                {
                    return(tesmStore.GetTerms(taxFieldModel.TermName, taxFieldModel.TermLCID, false)
                           .FirstOrDefault(t => t.TermSet.Group.Name == currentGroup.Name));
                }
            }
            else
            {
                if (taxFieldModel.TermId.HasValue)
                {
                    return(tesmStore.GetTerm(taxFieldModel.TermId.Value));
                }

                if (!string.IsNullOrEmpty(taxFieldModel.TermName))
                {
                    return(tesmStore.GetTerms(taxFieldModel.TermName, taxFieldModel.TermLCID, false).FirstOrDefault());
                }
            }

            return(null);
        }
 public void Create()
 {
     projectStatusField      = GetProjectStatusField();
     startDateField          = GetStartDateField();
     teamField               = GetTeamField();
     departmentField         = GetDepartmentField();
     endDateField            = GetEndDateField();
     projectManagerField     = GetProjectManagerField();
     projectValueField       = GetProjectValueField();
     projectContemtType      = GetProjectContemtType();
     projectsList            = GetProjectsList();
     managedProjectsListView = GetManagedProjectsListView();
 }
Example #9
0
        public static Term LookupTerm(TermStore tesmStore, TaxonomyFieldDefinition taxFieldModel)
        {
            if (taxFieldModel.TermId.HasValue)
            {
                return(tesmStore.GetTerm(taxFieldModel.TermId.Value));
            }

            if (!string.IsNullOrEmpty(taxFieldModel.TermName))
            {
                return(tesmStore.GetTerms(taxFieldModel.TermName, taxFieldModel.TermLCID, false).FirstOrDefault());
            }

            return(null);
        }
        public override ModelNode ReverseSingleHost(object reverseHost, ReverseOptions options)
        {
            var item = (reverseHost as TaxonomyFieldReverseHost).HostTaxonomyField;

            var def = new TaxonomyFieldDefinition();

            // TODO
            //def.Name = item.Name;

            return(new TaxonomyFieldModelNode
            {
                Options = { RequireSelfProcessing = true },
                Value = def
            });
        }
        public static TermSet LookupTermSet(SPSite site, TermStore tesmStore, TaxonomyFieldDefinition taxFieldModel)
        {
            return LookupTermSet(tesmStore,

                taxFieldModel.TermGroupName,
                taxFieldModel.TermGroupId,
                taxFieldModel.IsSiteCollectionGroup,

                site,

                taxFieldModel.TermSetName,
                taxFieldModel.TermSetId,
                taxFieldModel.TermSetLCID
                );
        }
        public static TermStore LookupTermStore(SPSite site, TaxonomyFieldDefinition taxFieldModel)
        {
            var taxSession = new TaxonomySession(site);

            if (taxFieldModel.UseDefaultSiteCollectionTermStore == true)
                return taxSession.DefaultSiteCollectionTermStore;

            if (taxFieldModel.SspId.HasValue)
                return taxSession.TermStores[taxFieldModel.SspId.Value];

            if (!string.IsNullOrEmpty(taxFieldModel.SspName))
                return taxSession.TermStores[taxFieldModel.SspName];

            return null;
        }
        public override ModelNode ReverseSingleHost(object reverseHost, ReverseOptions options)
        {
            var item = (reverseHost as TaxonomyFieldReverseHost).HostTaxonomyField;

            var def = new TaxonomyFieldDefinition();

            // TODO
            //def.Name = item.Name;

            return new TaxonomyFieldModelNode
            {
                Options = { RequireSelfProcessing = true },
                Value = def
            };
        }
Example #14
0
        public static TermStore LookupTermStore(SiteModelHost currentSiteModelHost, TaxonomyFieldDefinition taxFieldModel)
        {
            var termStore = TaxonomyTermStoreModelHandler.FindTermStore(currentSiteModelHost,
                                                                        taxFieldModel.SspName,
                                                                        taxFieldModel.SspId,
                                                                        taxFieldModel.UseDefaultSiteCollectionTermStore);

            if (termStore == null)
            {
                throw new ArgumentNullException("termStore is NULL. Please define SspName, SspId or ensure there is a default term store for the giving site.");
            }

            var storeContext = currentSiteModelHost.HostClientContext;

            storeContext.Load(termStore, s => s.Id);
            storeContext.ExecuteQueryWithTrace();

            return(termStore);
        }
Example #15
0
 public static TermSet LookupTermSet(ClientRuntimeContext context, TermStore termStore, TaxonomyFieldDefinition taxFieldModel)
 {
     return(LookupTermSet(context, termStore,
                          taxFieldModel.TermSetName, taxFieldModel.TermSetId, taxFieldModel.TermSetLCID));
 }
Example #16
0
 public static TModelNode AddTaxonomyField <TModelNode>(this TModelNode model, TaxonomyFieldDefinition definition,
                                                        Action <TaxonomyFieldModelNode> action)
     where TModelNode : ModelNode, IFieldHostModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
 public static ModelNode AddTaxonomyField(this ModelNode model, TaxonomyFieldDefinition definition)
 {
     return(AddTaxonomyField(model, definition, null));
 }
Example #18
0
        public static TermSet LookupTermSet(SiteModelHost currentSiteModelHost, TermStore termStore, TaxonomyFieldDefinition taxFieldModel)
        {
            var storeContext = currentSiteModelHost.HostClientContext;

            if (!string.IsNullOrEmpty(taxFieldModel.TermSetName))
            {
                var termSets = termStore.GetTermSetsByName(taxFieldModel.TermSetName, taxFieldModel.TermSetLCID);

                storeContext.Load(termSets);
                storeContext.ExecuteQueryWithTrace();

                return(termSets.FirstOrDefault());
            }

            if (taxFieldModel.TermSetId.HasValue)
            {
                TermSet termSet = null;

                var scope = new ExceptionHandlingScope(storeContext);
                using (scope.StartScope())
                {
                    using (scope.StartTry())
                    {
                        termSet = termStore.GetTermSet(taxFieldModel.TermSetId.Value);
                        storeContext.Load(termSet);
                    }

                    using (scope.StartCatch())
                    {
                    }
                }

                storeContext.ExecuteQueryWithTrace();

                if (termSet != null && termSet.ServerObjectIsNull == false)
                {
                    storeContext.Load(termSet, g => g.Id);
                    storeContext.ExecuteQueryWithTrace();

                    return(termSet);
                }
            }

            return(null);
        }
Example #19
0
 public static TermStore LookupTermStore(ClientContext clientContext,
                                         TaxonomyFieldDefinition taxFieldModel)
 {
     return(LookupTermStore(clientContext, taxFieldModel, false));
 }
Example #20
0
        public static Term LookupTerm(ClientContext clientContext, TermStore termStore,
                                      TermSet termSet,
                                      TaxonomyFieldDefinition termModel)
        {
            var context = clientContext;
            var site    = clientContext.Site;

            Term result = null;

            TermGroup currenGroup = null;

            var termGroupName         = termModel.TermGroupName;
            var termGroupId           = termModel.TermGroupId;
            var isSiteCollectionGroup = termModel.IsSiteCollectionGroup;

            if (!string.IsNullOrEmpty(termGroupName))
            {
                currenGroup = termStore.Groups.GetByName(termGroupName);

                context.Load(currenGroup);
                context.ExecuteQueryWithTrace();
            }
            else if (termGroupId != null && termGroupId.HasGuidValue())
            {
                currenGroup = termStore.Groups.GetById(termGroupId.Value);

                context.Load(currenGroup);
                context.ExecuteQueryWithTrace();
            }
            else if (isSiteCollectionGroup == true)
            {
                currenGroup = termStore.GetSiteCollectionGroup(site, false);

                context.Load(currenGroup);
                context.ExecuteQueryWithTrace();
            }

            if (currenGroup != null)
            {
                if (termModel.TermId.HasValue)
                {
                    // by ID, the only one match

                    var scope = new ExceptionHandlingScope(context);
                    using (scope.StartScope())
                    {
                        using (scope.StartTry())
                        {
                            result = termStore.GetTerm(termModel.TermId.Value);
                            context.Load(result);
                        }

                        using (scope.StartCatch())
                        {
                        }
                    }

                    context.ExecuteQueryWithTrace();
                }
                else if (!string.IsNullOrEmpty(termModel.TermName))
                {
                    var terms = termStore.GetTerms(new LabelMatchInformation(context)
                    {
                        Lcid            = termModel.TermLCID,
                        TermLabel       = termModel.TermName,
                        TrimUnavailable = false
                    });

                    context.Load(terms, t => t.Include(
                                     i => i.Id,
                                     i => i.Name,
                                     i => i.TermSet,
                                     i => i.TermSet.Group,
                                     i => i.TermSet.Group.Name
                                     ));
                    context.ExecuteQueryWithTrace();

                    result = terms.FirstOrDefault(t => t.TermSet.Group.Name == currenGroup.Name);

                    if ((result == null) && (termSet != null))
                    // sometimes label match information does not return the term
                    {
                        var allTerms = termSet.GetAllTerms();
                        context.Load(allTerms, t => t.Include(
                                         i => i.Id,
                                         i => i.Name,
                                         i => i.TermSet,
                                         i => i.TermSet.Group,
                                         i => i.TermSet.Group.Name,
                                         i => i.Labels
                                         ));
                        context.ExecuteQueryWithTrace();

                        result = allTerms.FirstOrDefault(t => (t.TermSet.Group.Name == currenGroup.Name) && (t.Labels.Any(l => l.Value == termModel.TermName && l.Language == termModel.TermLCID)));
                    }
                }
            }

            else
            {
                if (termModel.TermId.HasValue)
                {
                    var scope = new ExceptionHandlingScope(context);
                    using (scope.StartScope())
                    {
                        using (scope.StartTry())
                        {
                            result = termStore.GetTerm(termModel.TermId.Value);
                            context.Load(result);
                        }

                        using (scope.StartCatch())
                        {
                        }
                    }

                    context.ExecuteQueryWithTrace();
                }
                else if (!string.IsNullOrEmpty(termModel.TermName))
                {
                    var terms = termStore.GetTerms(new LabelMatchInformation(context)
                    {
                        Lcid            = termModel.TermLCID,
                        TermLabel       = termModel.TermName,
                        TrimUnavailable = false
                    });

                    context.Load(terms);
                    context.ExecuteQueryWithTrace();

                    result = terms.FirstOrDefault();

                    if ((result == null) && (termSet != null))
                    // sometimes label match information does not return the termset
                    {
                        var allTerms = termSet.GetAllTerms();
                        context.Load(allTerms, t => t.Include(
                                         i => i.Id,
                                         i => i.Name,
                                         i => i.TermSet,
                                         i => i.TermSet.Group,
                                         i => i.TermSet.Group.Name,
                                         i => i.Labels
                                         ));
                        context.ExecuteQueryWithTrace();

                        result =
                            allTerms.FirstOrDefault(
                                t => (t.Labels.Any(l => l.Value == termModel.TermName && l.Language == termModel.TermLCID)));
                    }
                }
            }

            if (result != null && result.ServerObjectIsNull == false)
            {
                context.Load(result);
                context.ExecuteQueryWithTrace();

                return(result);
            }

            return(null);
        }
 public static ModelNode AddTaxonomyField(this ModelNode model, TaxonomyFieldDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
Example #22
0
        public static Term LookupTerm(SiteModelHost currentSiteModelHost, TermStore termStore, TaxonomyFieldDefinition termModel)
        {
            var  context = currentSiteModelHost.HostClientContext;
            Term result  = null;

            if (termModel.TermId.HasValue)
            {
                var scope = new ExceptionHandlingScope(context);
                using (scope.StartScope())
                {
                    using (scope.StartTry())
                    {
                        result = termStore.GetTerm(termModel.TermId.Value);
                        context.Load(result);
                    }

                    using (scope.StartCatch())
                    {
                    }
                }

                context.ExecuteQueryWithTrace();
            }
            else if (!string.IsNullOrEmpty(termModel.TermName))
            {
                var terms = termStore.GetTerms(new LabelMatchInformation(context)
                {
                    Lcid            = termModel.TermLCID,
                    TermLabel       = termModel.TermName,
                    TrimUnavailable = false
                });

                context.Load(terms);
                context.ExecuteQueryWithTrace();

                result = terms.FirstOrDefault();
            }

            if (result != null && result.ServerObjectIsNull == false)
            {
                context.Load(result);
                context.ExecuteQueryWithTrace();

                return(result);
            }

            return(null);
        }
Example #23
0
 public static TModelNode AddTaxonomyField <TModelNode>(this TModelNode model, TaxonomyFieldDefinition definition)
     where TModelNode : ModelNode, IFieldHostModelNode, new()
 {
     return(AddTaxonomyField(model, definition, null));
 }
        public void CanDeployTaxonomyField()
        {
            // define a taxonomy
            // term store -> group -> term set -> terms
            var taxDefaultTermStore = new TaxonomyTermStoreDefinition
            {
                UseDefaultSiteCollectionTermStore = true
            };

            var taxTermGroup = new TaxonomyTermGroupDefinition
            {
                Name = "M2 Taxonomy"
            };

            var taxTermSet = new TaxonomyTermSetDefinition
            {
                Name = "Locations"
            };

            var taxTermLondon = new TaxonomyTermDefinition
            {
                Name = "London"
            };

            var taxTermSydney = new TaxonomyTermDefinition
            {
                Name = "Sydney"
            };

            // define the field
            var location = new TaxonomyFieldDefinition
            {
                Title        = "Location",
                InternalName = "dcs_LocationTax",
                Group        = "SPMeta2.Samples",
                Id           = new Guid("FE709AC2-E3A1-4A25-8F71-3480667CD98F"),
                IsMulti      = false,
                UseDefaultSiteCollectionTermStore = true,
                TermSetName = taxTermSet.Name
            };

            var model = SPMeta2Model.NewSiteModel(site =>
            {
                site
                .AddHostTaxonomyTermStore(taxDefaultTermStore, store =>
                {
                    store.AddTaxonomyTermGroup(taxTermGroup, group =>
                    {
                        group.AddTaxonomyTermSet(taxTermSet, termSet =>
                        {
                            termSet
                            .AddTaxonomyTerm(taxTermLondon)
                            .AddTaxonomyTerm(taxTermSydney);
                        });
                    });
                })
                .AddTaxonomyField(location);
            });

            DeployModel(model);
        }
Example #25
0
 public static TermStore LookupTermStore(SiteModelHost currentSiteModelHost,
                                         TaxonomyFieldDefinition taxFieldModel)
 {
     return(LookupTermStore(currentSiteModelHost, taxFieldModel, false));
 }
Example #26
0
 public static Term LookupTerm(SiteModelHost currentSiteModelHost, TermStore termStore,
                               TermSet termSet,
                               TaxonomyFieldDefinition termModel)
 {
     return(LookupTerm(currentSiteModelHost.HostClientContext, termStore, termSet, termModel));
 }