コード例 #1
0
        public ActionResult <Dictionary <string, ThesaurusModel> > GetThesauri(
            [FromRoute] string database,
            [FromRoute] string ids,
            [FromQuery] bool purgeIds)
        {
            ICadmusRepository repository =
                _repositoryProvider.CreateRepository(database);
            Dictionary <string, ThesaurusModel> dct =
                new Dictionary <string, ThesaurusModel>();

            foreach (string id in (ids ?? "")
                     .Split(',', StringSplitOptions.RemoveEmptyEntries)
                     .Distinct())
            {
                Thesaurus thesaurus = repository.GetThesaurus(id);
                if (thesaurus == null)
                {
                    continue;
                }
                dct[purgeIds ? PurgeThesaurusId(id) : id] = new ThesaurusModel
                {
                    Id       = thesaurus.Id,
                    Language = thesaurus.GetLanguage(),
                    Entries  = thesaurus.GetEntries().ToArray()
                };
            }
            return(Ok(dct));
        }
コード例 #2
0
        public IActionResult GetThesaurus(
            [FromRoute] string database,
            [FromRoute] string id,
            [FromQuery] bool emptyIfNotFound)
        {
            ICadmusRepository repository =
                _repositoryProvider.CreateRepository(database);
            Thesaurus thesaurus = repository.GetThesaurus(id);

            if (thesaurus == null)
            {
                return(emptyIfNotFound
                    ? Ok(new ThesaurusModel
                {
                    Id = id,
                    Language = "en",
                    Entries = Array.Empty <ThesaurusEntry>()
                })
                    : (IActionResult)NotFound());
            }

            ThesaurusModel model = new ThesaurusModel
            {
                Id       = thesaurus.Id,
                Language = thesaurus.GetLanguage(),
                Entries  = thesaurus.GetEntries().ToArray()
            };

            return(Ok(model));
        }
コード例 #3
0
        public void Read_Profile_Ok()
        {
            string json = LoadProfile("SampleProfile.json");
            IDataProfileSerializer serializer = new JsonDataProfileSerializer();

            DataProfile profile = serializer.Read(json);

            // facets
            Assert.Single(profile.Facets);
            FacetDefinition facetDef = profile.Facets[0];

            Assert.Equal("facet-default", facetDef.Id);
            Assert.Equal("default", facetDef.Label);
            Assert.Equal("The default facet", facetDef.Description);
            Assert.Equal("FF0000", facetDef.ColorKey);
            Assert.Equal(7, facetDef.PartDefinitions.Count);

            // TODO: check each facet definition

            // flags
            Assert.Single(profile.Flags);
            FlagDefinition flagDef = profile.Flags[0];

            Assert.Equal(1, flagDef.Id);
            Assert.Equal("to revise", flagDef.Label);
            Assert.Equal("The item must be revised.", flagDef.Description);
            Assert.Equal("F08080", flagDef.ColorKey);

            // thesauri
            Assert.Equal(2, profile.Thesauri.Length);
            Thesaurus thesaurus = Array.Find(profile.Thesauri,
                                             t => t.Id == "categories@en");

            Assert.NotNull(thesaurus);
            Assert.Equal(16, thesaurus.GetEntries().Count);
            // TODO: check each entry

            thesaurus = Array.Find(profile.Thesauri,
                                   t => t.Id == "languages@en");
            Assert.NotNull(thesaurus);
            Assert.Equal(8, thesaurus.GetEntries().Count);
            // TODO: check each entry
        }
コード例 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MongoThesaurus"/> class.
        /// </summary>
        /// <param name="thesaurus">The set to load data from.</param>
        /// <exception cref="ArgumentNullException">null set</exception>
        public MongoThesaurus(Thesaurus thesaurus)
        {
            if (thesaurus == null)
            {
                throw new ArgumentNullException(nameof(thesaurus));
            }

            Id       = thesaurus.Id;
            TargetId = thesaurus.TargetId;
            Entries  = new List <MongoThesaurusEntry>();
            foreach (ThesaurusEntry entry in thesaurus.GetEntries())
            {
                Entries.Add(new MongoThesaurusEntry(entry));
            }
        }