示例#1
0
        static void Main(string[] args)
        {
            using var httpClient = new HttpClient();
            httpClient.Timeout   = TimeSpan.FromSeconds(5);

            var dictionaryApi = new DictionaryApi(httpClient);

            var wordRequest = new DictionaryRequest
            {
                LanguageCode = args[0],
                Word         = args[1]
            };
            var wordResponse = dictionaryApi.GetWord(wordRequest);

            if (!wordResponse.Found)
            {
                C.WriteLine("The word/dictionary does not exist in this dictionary");
                return;
            }

            C.WriteLine(wordResponse.Word.WordName);
            foreach (var meaning in wordResponse.Word.Meanings)
            {
                C.WriteLine($"- Meaning's part of speech: {meaning.PartOfSpeech}");
                foreach (var definition in meaning.Type)
                {
                    C.WriteLine($"-- Definition: {definition.Definition}");
                    C.WriteLine($"-- Example: {definition.Example}");
                }
            }
        }
示例#2
0
        public async Task <IActionResult> Add([FromBody] DictionaryRequest request)
        {
            string accessToken = await HttpContext.GetToken();

            var session = await sessionService.GetSession(accessToken);

            if (session == null)
            {
                return(Unauthorized(new { message = "Session expired. Please login again." }));
            }

            if (session.UserId != Constants.AdminUser)
            {
                return(BadRequest(new { message = "Not authorized" }));
            }

            try
            {
                var lexicon = new Lexicon
                {
                    CreationDate = DateTime.Now,
                    Language     = request.Language,
                    Description  = request.Description,
                };

                var words = request.Words.Select(w => new Word
                {
                    Language = lexicon.Language,
                    Name     = w
                });

                await log.InfoAsync($"Creating new Lexicon: [{lexicon.Language}]", context : session.UserId);

                var isOK = await wordRepository.AddDictionary(lexicon, words);

                if (isOK)
                {
                    await log.InfoAsync($"New Lexicon Created: [{lexicon.Language}]", context : session.UserId);

                    return(Ok(isOK));
                }
                throw new ApplicationException("Lexicon creation failed");
            }
            catch (Exception ex)
            {
                await log.ErrorAsync("Error in wordRepository.AddDictionary()", ex);

                return(BadRequest(new { title = ex.GetType().ToString(), details = ex.StackTrace, message = ex.Message }));
            }
        }
        public void Bind_SimpleForm()
        {
            var binder = new ReflectionBinder();

            var request = new DictionaryRequest
            {
                ["JobKey"] = "test"
            };

            Form1 form = (Form1)binder.Bind(typeof(Form1), request);

            Assert.That(form, Is.Not.Null);
            Assert.That(form.JobKey, Is.EqualTo("test"));
        }
        public void Bind_NestedArray_ShouldBeCaseInsensitive()
        {
            var binder = new ReflectionBinder();

            var request = new DictionaryRequest
            {
                ["ITEMS[0].key"] = "key1"
            };

            Form2 form = (Form2)binder.Bind(typeof(Form2), request);

            Assert.That(form, Is.Not.Null);
            Assert.That(form.Items, Is.Not.Null);
            Assert.That(form.Items.Length, Is.EqualTo(1));
            Assert.That(form.Items[0].Key, Is.EqualTo("key1"));
        }
        public void Bind_NestedArrayWrongKey_ShouldIgnore()
        {
            var binder = new ReflectionBinder();

            var request = new DictionaryRequest
            {
                ["Items[0]"]     = "key1",
                ["Items[0].Key"] = "key2"
            };

            Form2 form = (Form2)binder.Bind(typeof(Form2), request);

            Assert.That(form, Is.Not.Null);
            Assert.That(form.Items, Is.Not.Null);
            Assert.That(form.Items.Length, Is.EqualTo(1));
            Assert.That(form.Items[0].Key, Is.EqualTo("key2"));
        }
        public void Bind_NestedArray()
        {
            var binder = new ReflectionBinder();

            var request = new DictionaryRequest
            {
                ["Items[0].Key"]   = "key1",
                ["Items[0].Value"] = "value1",
                ["Items[1].Key"]   = "key2",
                ["Items[1].Value"] = "value2"
            };

            Form2 form = (Form2)binder.Bind(typeof(Form2), request);

            Assert.That(form, Is.Not.Null);
            Assert.That(form.Items, Is.Not.Null);
            Assert.That(form.Items.Length, Is.EqualTo(2));
            Assert.That(form.Items[0].Key, Is.EqualTo("key1"));
            Assert.That(form.Items[0].Value, Is.EqualTo("value1"));
            Assert.That(form.Items[1].Key, Is.EqualTo("key2"));
            Assert.That(form.Items[1].Value, Is.EqualTo("value2"));
        }