From d7bd4860712d81692ca2db18dcb18ff0a2e93b51 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 20 Feb 2017 01:14:57 +0100 Subject: [PATCH] =?UTF-8?q?Sz=C3=A1mos=20TODO=20elv=C3=A9gezve,=20jav?= =?UTF-8?q?=C3=ADt=C3=A1sok=20-=20Minden=20j=C3=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - For ciklus az egy idÅ‘ben tartott órákhoz - Ha nem sikerül a betöltés, null-t ad vissza - Most már elmenti az óra csoportját is - Az órarendlista most már rendesen frissül - Most már nem ír teljes stack trace-t, ha hálózati hiba miatt nem tudott frissíteni - Megszünteti az óra kijelölését órarendváltáskor/frissítéskor - Egy TextView használata a kiválasztott órához - Csoport megjelenítése - A szerkesztés után megfelelÅ‘en frissül a felület - Órarend törlés működik --- Orarend/API.cs | 47 +++++--- Orarend/Óra.cs | 1 + OrarendAndroidApp/EditActivity.cs | 34 +++++- OrarendAndroidApp/MainActivity.cs | 102 +++++++++------- .../Resources/Resource.Designer.cs | 85 +++++++------ .../Resources/layout/EditLayout.axml | 3 + .../Resources/layout/MainLayout.axml | 113 ++++++++---------- 7 files changed, 218 insertions(+), 167 deletions(-) diff --git a/Orarend/API.cs b/Orarend/API.cs index 4042ef2..43a59c6 100644 --- a/Orarend/API.cs +++ b/Orarend/API.cs @@ -72,25 +72,29 @@ namespace Orarend int x = int.Parse(node.FirstChild.InnerText) - 1; órarend.Órakezdetek[x] = TimeSpan.Parse(node.FirstChild.Attributes["title"].Value.Split('-')[0].Trim()); for (int i = 0; i < 5; i++) //Napok - { //TODO: for ciklus az egy idÅ‘ben tartott órákhoz + { var óranode = node.ChildNodes[i + 1].FirstChild; var óra = (ahét ? órarend.ÓrákAHét : órarend.ÓrákBHét)[i][x]; if (óranode.ChildNodes.Count == 0) continue; - var csoport = óranode.FirstChild.InnerText.TrimEnd(':'); - if (csoport != "Egész osztály" && !órarend.Csoportok.Contains(csoport)) - continue; - if (óra == null) - (ahét ? órarend.ÓrákAHét : órarend.ÓrákBHét)[i][x] = óra = new Óra(); - óra.Csoportok = new string[] { csoport }; //Az állandó órarendben osztályonként csak egy csoport van egy órán - óra.Azonosító = óranode.ChildNodes[2].InnerText; - óra.TeljesNév = óranode.ChildNodes[2].Attributes["title"].Value; - óra.Terem = óranode.ChildNodes[3].InnerText.Trim(' ', '(', ')'); - óra.Tanár = new Tanár + for (int j = 0; j < óranode.ChildNodes.Count; j += 6) { - Azonosító = óranode.ChildNodes[4].InnerText, - Név = óranode.ChildNodes[4].Attributes["title"].Value - }; + var csoport = óranode.ChildNodes[j].InnerText.TrimEnd(':'); + if (csoport != "Egész osztály" && !órarend.Csoportok.Contains(csoport)) + continue; + if (óra == null) + (ahét ? órarend.ÓrákAHét : órarend.ÓrákBHét)[i][x] = óra = new Óra(); + óra.Csoportok = new string[] { csoport }; //Az állandó órarendben osztályonként csak egy csoport van egy órán + óra.Azonosító = óranode.ChildNodes[j + 2].InnerText; + óra.TeljesNév = óranode.ChildNodes[j + 2].Attributes["title"].Value; + óra.Terem = óranode.ChildNodes[j + 3].InnerText.Trim(' ', '(', ')'); + óra.Tanár = new Tanár + { + Azonosító = óranode.ChildNodes[j + 4].InnerText, + Név = óranode.ChildNodes[j + 4].Attributes["title"].Value + }; + break; + } } break; } @@ -133,9 +137,16 @@ namespace Orarend s.CopyTo(ms); if (ms.Length > 2) { - ms.Seek(0, SeekOrigin.Begin); - var serializer = new DataContractJsonSerializer(typeof(T)); - return (T)serializer.ReadObject(ms); + try + { + ms.Seek(0, SeekOrigin.Begin); + var serializer = new DataContractJsonSerializer(typeof(T)); + return (T)serializer.ReadObject(ms); + } + catch + { + return default(T); + } } return default(T); } @@ -174,7 +185,7 @@ namespace Orarend } } - private static void ÓrarendMentés(Stream s) + public static void ÓrarendMentés(Stream s) { mentés(s, Órarendek.ToArray()); } diff --git a/Orarend/Óra.cs b/Orarend/Óra.cs index 4f34963..0e61d0e 100644 --- a/Orarend/Óra.cs +++ b/Orarend/Óra.cs @@ -19,6 +19,7 @@ namespace Orarend /// /// Az órán résztvevÅ‘ csoportok /// + [DataMember] public string[] Csoportok { get; set; } public string Azonosító diff --git a/OrarendAndroidApp/EditActivity.cs b/OrarendAndroidApp/EditActivity.cs index 307a0a7..b6a20a5 100644 --- a/OrarendAndroidApp/EditActivity.cs +++ b/OrarendAndroidApp/EditActivity.cs @@ -10,6 +10,7 @@ using Android.Runtime; using Android.Views; using Android.Widget; using Orarend; +using Android.Graphics; namespace OrarendAndroidApp { @@ -39,6 +40,35 @@ namespace OrarendAndroidApp FindViewById(Resource.Id.csoportokEditText).Text = órarend.Csoportok.Aggregate((a, b) => a + " " + b); } FindViewById