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