示例#1
0
    public void DictionaryEntryForClient()
    {
        var entry = new DictionaryEntry()
        {
            Lemma      = "abc",
            Definition = "def"
        };
        var entryForClient = new DictionaryEntryForClient(entry);

        Assert.AreEqual(entryForClient.Lemma, entry.Lemma);
        Assert.AreEqual(entryForClient.Usages, entry.Usages);
        Assert.AreEqual(entryForClient.Translation, entry.Translation);
        Assert.AreEqual(entryForClient.StressIndex, entry.StressIndex);
    }
        public ActionResult <DictionaryEntryForClient> Get(string lemma)
        {
            var normalizedLemma = TransformLemmaForSearch(lemma);
            var cacheKey        = "entry_" + normalizedLemma;

            if (!_cache.TryGetValue(cacheKey, out DictionaryEntryForClient cacheResult))
            {
                var entry = _context.DictionaryEntries
                            .Include(de => de.Usages)
                            .FirstOrDefault(de => de.LemmaForSearch == normalizedLemma);

                if (entry == null)
                {
                    return(NotFound());
                }
                var entryForClient = new DictionaryEntryForClient(entry);
                _cache.Set(cacheKey, entryForClient, TimeSpan.FromDays(1));
                return(entryForClient);
            }
            return(cacheResult);
        }