private void Run()
        {
            var url       = this.textBoxUrl.Text;
            var username  = this.textBoxUser.Text;
            var password  = this.textBoxPassword.Text;
            var groupName = this.textBoxGroup.Text;

            var tm = new TermStoreManager(url, username, password, groupName)
            {
                DefaultLcID = 1041,
            };

            var tbl = this.gridCsv.ToDataTable();

            tbl.Select(r => new {
                セット名  = r[0].ToString().Trim(),
                セット説明 = r[1].ToString().Trim(),
                公開    = r[2].ToBoolean(),
                タグ    = r[3].ToBoolean(),
                用語    = r[4].ToString().Trim(),
                説明    = r[5].ToString().Trim(),
            }).GroupBy(r => new {
                r.セット名,
                r.セット説明,
                r.公開,
            }).ToList().ForEach(v => {
                var row = v.Select(x => new TermInfo(x.用語)
                {
                    IsAvailableForTagging = x.タグ,
                    Description           = x.説明,
                }).ToArray();

                var info = new TermSetInfo(v.Key.セット名, row)
                {
                    IsOpenForTermCreation = v.Key.公開,
                    Description           = v.Key.セット説明,
                };

                tm.AddTerm(info);
            });

            this.ShowMessageBox("用語セットを登録しました。");
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // Create a monitored scope for the developer dashboard, etc.
            using (new SPMonitoredScope("iVision.Menu.ControlTemplates.iVision.Menu.GlobalMenu::Page_Load"))
            {
                if (!Page.IsPostBack)
                {
                    Level = 0;
                    SPSecurity.RunWithElevatedPrivileges(delegate
                    {
                        using (
                            var thisSite =
                                new SPSite(SPContext.Current.Site.WebApplication.AlternateUrls[0].Uri.AbsoluteUri))
                        {
                            Site = thisSite;
                            // Get Taxonomy Session, Term Store
                            var session = new TaxonomySession(thisSite);

                            // Use the first TermStore in the list
                            if (session.TermStores.Count == 0)
                            {
                                throw new InvalidOperationException("The Taxonomy Service is offline or missing");
                            }

                            // Initialize StringWriter instance.
                            var stringWriter = new StringWriter();

                            // Put HtmlTextWriter in using block because it needs to call Dispose.
                            using (var writer = new HtmlTextWriter(stringWriter))
                            {
                                TermSet termSetForNav;
                                var stores        = session.TermStores;
                                var termStoreGuid = Guid.Empty;
                                if (Guid.TryParse(TermStoreId, out termStoreGuid))
                                {
                                    var termStore   = TermStoreManager.GetTermStore(session, termStoreGuid);
                                    var termSetGuid = Guid.Empty;
                                    if (Guid.TryParse(TermSetId, out termSetGuid))
                                    {
                                        termSetForNav = termStore.GetTermSet(termSetGuid);
                                        if (null == termSetForNav)
                                        {
                                            //termSetForNav = termStore.Groups["Navigation"].TermSets["Global"];
                                        }
                                    }
                                    else
                                    {
                                        //nTermSet = termStore.Groups["Navigation"].TermSets.GetByName("Global");
                                        termSetForNav = termStore.Groups["Navigation"].TermSets["Global"];
                                    }
                                }
                                else
                                {
                                    termSetForNav = stores[0].Groups["Navigation"].TermSets["Global"];
                                }

                                if (null == termSetForNav)
                                {
                                    //return;
                                }
                                var navigationTermSet = NavigationTermSet.GetAsResolvedByWeb(termSetForNav,
                                                                                             thisSite.OpenWeb(), StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);

                                this.CTermSet = new CurrentTermSet
                                {
                                    TermSet           = termSetForNav,
                                    NavigationTermSet = navigationTermSet
                                };

                                // Begin nav output
                                CssClass = "nav navbar-nav";
                                //writer.AddAttribute("role", "navigation");
                                writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClass);
                                writer.RenderBeginTag(HtmlTextWriterTag.Ul);

                                // check nTermSet somehow
                                //buildItems(writer, navTermSet.Terms);
                                //this.buildItems(writer, cTermSet.getTerms());
                                this.BuildItems(writer, navigationTermSet);

                                writer.RenderEndTag();
                            }

                            // Return the result.
                            GlobalMenuContainer.Text = "";
                            GlobalMenuContainer.Text = stringWriter.ToString();
                        }
                    });
                }
            }
        }