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)); }
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)); }
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 }
/// <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)); } }