Пример #1
0
        public static List <Jisho> ToJisho(string value)
        {
            List <Jisho> jishoList = new List <Jisho>();
            RootObject   ro        = JishoCSharpWrapper.Shared.Client.RequestValuesFromJisho(value, false).Result;

            if (ro.data.Count > 0)
            {
                foreach (var item in ro.data)
                {
                    Jisho jisho = new Jisho();

                    jisho.Japanese.Reading = item.japanese[0].reading;
                    jisho.Japanese.Word    = item.japanese[0].word;

                    if (item.japanese.Count > 1)
                    {
                        for (int i = 1; i < item.japanese.Count; i++)
                        {
                            jisho.OtherForms.Add(new Models.Jisho.Japanese()
                            {
                                Word    = item.japanese[i].word,
                                Reading = item.japanese[i].reading
                            });
                        }
                    }

                    for (int i = 0; i < item.senses.Count; i++)
                    {
                        Sense sense = new Sense();


                        sense.EnglishDefinitions = string.Join(",", item.senses[i].english_definitions);
                        sense.PartsOfSpeech      = string.Join(",", item.senses[i].parts_of_speech);
                        jisho.EnglishTranslations.Add(sense);
                    }
                    jishoList.Add(jisho);
                }
            }

            return(jishoList);
        }
Пример #2
0
        static async Task Main(string[] args)
        {
            #region Initial Data Query
            var jisho = new Jisho();
            await jisho.QueryPages("jlpt-n5", QueryType.Tagged, 1, 4);

            Console.WriteLine("Data.Count = " + jisho.Pages.Count);
            #endregion

            #region GetPage Test
            {
                Console.WriteLine("GetPage test: ");
                var page = await Jisho.Query("jlpt-n5", QueryType.Tagged, 1);

                if (!page.Equals(jisho.GetPage(1)))
                {
                    Console.WriteLine("Failed");
                    throw new Exception("BuildTest Error: GetPage index doesn't align with page numbers");
                }
                Console.WriteLine("Passed \n");
            }
            #endregion

            #region QueryPages Test
            Console.WriteLine("QueryPages test: ");

            // TEST: Data Validity of query results and cached data

            for (int page = 1; page < jisho.PageRange.Last; page++)
            {
                var p = await Jisho.Query("jlpt-n5", QueryType.Tagged, (uint)page);

                if (!p.Equals(jisho.GetPage((uint)page)))
                {
                    Console.WriteLine("Failed");
                    throw new Exception("BuildTest Error: QueryPages cached data doesn't match static query");
                }

                // TEST: Size of Data member matches PageRange

                if (jisho.Pages.Count != jisho.PageRange.Last)
                {
                    Console.WriteLine("Failed; Pages.Count=" + jisho.Pages.Count + " : PageRange.Last=" + jisho.PageRange.Last);
                    throw new Exception("BuildTest Error: QueryPages returned length of Pages does not match PageRange.Last");
                }


                Console.WriteLine("Passed \n");
            }
            #endregion

            #region Datum Indexing
            {
                Console.WriteLine("Datum Indexing test: ");
                // Theoretically should contain datum entries 21-40
                var page = jisho.GetPage(1);
                if (page.Data.ElementAt(0) != jisho[1])
                {
                    Console.WriteLine("Failed");
                }
                Console.WriteLine("Passed \n");
            }
            #endregion


            #region DatumLength Test

            Console.WriteLine("DatumLength test: ");

            var datum = jisho[20];
            var query = await Jisho.Query("jlpt-n5", QueryType.Tagged, page : 2);

            if (datum.Equals(query.Data[0]))
            {
                Console.WriteLine("passed");
            }
            else
            {
                Console.WriteLine("failed");
            }
            #endregion



            // Currently using this to hang the program so output can be read
            while (true)
            {
            }
        }