diff --git a/Orarend/API.cs b/Orarend/API.cs index 24de4c1..187a09a 100644 --- a/Orarend/API.cs +++ b/Orarend/API.cs @@ -1,5 +1,7 @@ -using System.Collections.Generic; +using HtmlAgilityPack; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Net; using System.Threading.Tasks; using System.Xml; @@ -16,17 +18,22 @@ namespace Orarend /// A csoportok, amiknek az óráit kérjük, szóközökkel elválasztva /// A nap egy betűs formában /// - public static IEnumerable<Óra> Órák(string osztályid, string csoportok, string nap) + public static IEnumerable<Óra> Órák(string osztályid, string csoportok, char nap) { return new Óra[] { new Óra { Azonosító = "test", Név = "Test", Tanár = new Tanár { Név = "A B" }, Terem = "222" }, new Óra { Azonosító = "asd", Név = "Asd", Tanár = new Tanár { Név = "B A" }, Terem = "216" } }; } - public static async Task> Osztályok() + /// + /// Visszatér az osztályok listájával, egy-egy kételemű tömbbel, az első elem az azonosító, a második a megjelenített név. + /// + /// + public static async Task> Osztályok() { //TODO: Tárolja el az adatokat, és csak külön hívásra frissítse; csak a frissítés legyen async, ezek nem + HtmlDocument doc = new HtmlDocument(); var req = WebRequest.CreateHttp("http://deri.enaplo.net/ajax/orarend/orarendoszt.php"); var resp = await req.GetResponseAsync(); - var doc = XDocument.Parse(new StreamReader(resp.GetResponseStream()).ReadToEnd()); - return new string[] { doc.Element(XName.Get("select")).Value }; + doc.Load(resp.GetResponseStream()); + return doc.GetElementbyId("uok").ChildNodes.Where(node => node.HasAttributes).Select(node => new string[] { node.GetAttributeValue("value", ""), node.InnerText }); } } } diff --git a/Orarend/Orarend.csproj b/Orarend/Orarend.csproj index 20ba1c6..0b5b840 100644 --- a/Orarend/Orarend.csproj +++ b/Orarend/Orarend.csproj @@ -33,14 +33,21 @@ prompt 4 - - - + + + + + ..\packages\HtmlAgilityPack.1.4.9.5\lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch\HtmlAgilityPack.dll + True + + + +