From 7505ec8406231fc724069ac6c282b6d0fa0ba6e9 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Fri, 17 Feb 2017 00:34:01 +0100 Subject: [PATCH] =?UTF-8?q?Helyettes=C3=ADt=C3=A9sek=20elkezdve,=20bet?= =?UTF-8?q?=C3=B6lt=C3=A9s/ment=C3=A9s=20elkezdve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tegnap/tegnapelőtt kezdtem --- Orarend/API.cs | 65 ++++++++++++++++++- Orarend/Orarend.csproj | 1 + Orarend/Settings.cs | 12 ++++ OrarendAndroidApp/MainActivity.cs | 16 ++++- .../Properties/AndroidManifest.xml | 4 +- 5 files changed, 92 insertions(+), 6 deletions(-) create mode 100644 Orarend/Settings.cs diff --git a/Orarend/API.cs b/Orarend/API.cs index 254afa4..d8685a6 100644 --- a/Orarend/API.cs +++ b/Orarend/API.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; +using System.Runtime.Serialization.Json; using System.Text.RegularExpressions; using System.Threading.Tasks; @@ -19,6 +20,7 @@ namespace Orarend /// public static Osztály[] Osztályok { get; private set; } public static List<Órarend> Órarendek { get; } = new List<Órarend>(); + public static Settings Beállítások { get; private set; } //TODO: Settings /// /// Frissíti az osztálylistát és az eredeti órarendet, első megnyitásnál, és egy órarend hozzáadásánál/szerkesztésénél, majd hetente elegendő meghívni /// @@ -101,7 +103,68 @@ namespace Orarend /// public static async Task HelyettesítésFrissítés() { - //TODO + HtmlDocument doc = new HtmlDocument(); + var req = WebRequest.CreateHttp("http://deri.enaplo.net/ajax/print/htlista.php"); + var resp = await req.GetResponseAsync(); + await Task.Run(() => + { + using (var sr = new StreamReader(resp.GetResponseStream())) + doc.LoadHtml(sr.ReadToEnd()); + }); + } + + public static void ÓrarendBetöltés(Stream s) + { + using (s) + { + var serializer = new DataContractJsonSerializer(typeof(Órarend[])); + Órarendek.AddRange((Órarend[])serializer.ReadObject(s)); + } + } + + public static void OsztályBetöltés(Stream s) + { + using (s) + { + var serializer = new DataContractJsonSerializer(typeof(Osztály[])); + Osztályok = ((Osztály[])serializer.ReadObject(s)); + } + } + + public static void BeállításBetöltés(Stream s) + { + using (s) + { + var serializer = new DataContractJsonSerializer(typeof(Settings)); + Beállítások = ((Settings)serializer.ReadObject(s)); + } + } + + public static void ÓrarendMentés(Stream s) + { + using (s) + { + var serializer = new DataContractJsonSerializer(typeof(Órarend[])); + serializer.WriteObject(s, Órarendek); + } + } + + public static void OsztályMentés(Stream s) + { + using (s) + { + var serializer = new DataContractJsonSerializer(typeof(Osztály[])); + serializer.WriteObject(s, Osztályok); + } + } + + public static void BeállításMentés(Stream s) + { + using (s) + { + var serializer = new DataContractJsonSerializer(typeof(Settings)); + serializer.WriteObject(s, Beállítások); + } } } } diff --git a/Orarend/Orarend.csproj b/Orarend/Orarend.csproj index 8292462..23c3f58 100644 --- a/Orarend/Orarend.csproj +++ b/Orarend/Orarend.csproj @@ -37,6 +37,7 @@ + diff --git a/Orarend/Settings.cs b/Orarend/Settings.cs new file mode 100644 index 0000000..631d280 --- /dev/null +++ b/Orarend/Settings.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Orarend +{ + public class Settings + { + } +} diff --git a/OrarendAndroidApp/MainActivity.cs b/OrarendAndroidApp/MainActivity.cs index 00169b5..0611daa 100644 --- a/OrarendAndroidApp/MainActivity.cs +++ b/OrarendAndroidApp/MainActivity.cs @@ -12,6 +12,7 @@ using Java.Lang; using System.Collections.Generic; using System.Threading.Tasks; using System.Threading; +using System.IO; namespace OrarendAndroidApp { @@ -20,12 +21,19 @@ namespace OrarendAndroidApp { private Handler handler; private Órarend órarend; - + protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.MainLayout); handler = new Handler(); + string[] list = FileList(); + if (list.Contains("beallitasok")) + API.BeállításBetöltés(OpenFileInput("beallitasok")); + if (list.Contains("orarend")) + API.ÓrarendBetöltés(OpenFileInput("orarend")); + if (list.Contains("osztaly")) + API.OsztályBetöltés(OpenFileInput("osztaly")); API.Frissítés().ContinueWith(t => { handler.Post(() => @@ -55,7 +63,7 @@ namespace OrarendAndroidApp tr1.AddView(textview); }; API.HelyettesítésFrissítés().ContinueWith(t => - { + { //TODO: Ezt ne itt, ne így handler.Post(() => { TaskHiba(t); @@ -95,7 +103,7 @@ namespace OrarendAndroidApp } } }); - }); + }); //TODO: Tárolja el a helyettesített órarendeket is valahogyan, akár külön osztály, hogy csak a változásokat tárolja } private TextView selected; @@ -157,6 +165,8 @@ namespace OrarendAndroidApp handler.Post(() => bar.Visibility = ViewStates.Visible); API.Frissítés().ContinueWith(t => //TODO: Megjelenítés frissítése { + API.ÓrarendMentés(OpenFileOutput("orarend", FileCreationMode.Private)); + API.OsztályMentés(OpenFileOutput("osztaly", FileCreationMode.Private)); //TODO: Beállítások mentése handler.Post(() => bar.Visibility = ViewStates.Gone); }); break; diff --git a/OrarendAndroidApp/Properties/AndroidManifest.xml b/OrarendAndroidApp/Properties/AndroidManifest.xml index aa6ff5e..b19d5ec 100644 --- a/OrarendAndroidApp/Properties/AndroidManifest.xml +++ b/OrarendAndroidApp/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@  - - + + \ No newline at end of file