Helyettesítések elkezdve, betöltés/mentés elkezdve

Tegnap/tegnapelőtt kezdtem
This commit is contained in:
Norbi Peti 2017-02-17 00:34:01 +01:00
parent 0e73f5df24
commit 7505ec8406
5 changed files with 92 additions and 6 deletions

View file

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Runtime.Serialization.Json;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -19,6 +20,7 @@ namespace Orarend
/// <returns></returns> /// <returns></returns>
public static Osztály[] Osztályok { get; private set; } public static Osztály[] Osztályok { get; private set; }
public static List<Órarend> Órarendek { get; } = new List<Órarend>(); public static List<Órarend> Órarendek { get; } = new List<Órarend>();
public static Settings Beállítások { get; private set; } //TODO: Settings
/// <summary> /// <summary>
/// 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 /// 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
/// </summary> /// </summary>
@ -101,7 +103,68 @@ namespace Orarend
/// </summary> /// </summary>
public static async Task HelyettesítésFrissítés() 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);
}
} }
} }
} }

View file

@ -37,6 +37,7 @@
<Compile Include="API.cs" /> <Compile Include="API.cs" />
<Compile Include="Osztály.cs" /> <Compile Include="Osztály.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Settings.cs" />
<Compile Include="Tanár.cs" /> <Compile Include="Tanár.cs" />
<Compile Include="Óra.cs" /> <Compile Include="Óra.cs" />
<Compile Include="Órarend.cs" /> <Compile Include="Órarend.cs" />

12
Orarend/Settings.cs Normal file
View file

@ -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
{
}
}

View file

@ -12,6 +12,7 @@ using Java.Lang;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Threading; using System.Threading;
using System.IO;
namespace OrarendAndroidApp namespace OrarendAndroidApp
{ {
@ -20,12 +21,19 @@ namespace OrarendAndroidApp
{ {
private Handler handler; private Handler handler;
private Órarend órarend; private Órarend órarend;
protected override void OnCreate(Bundle bundle) protected override void OnCreate(Bundle bundle)
{ {
base.OnCreate(bundle); base.OnCreate(bundle);
SetContentView(Resource.Layout.MainLayout); SetContentView(Resource.Layout.MainLayout);
handler = new Handler(); 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 => API.Frissítés().ContinueWith(t =>
{ {
handler.Post(() => handler.Post(() =>
@ -55,7 +63,7 @@ namespace OrarendAndroidApp
tr1.AddView(textview); tr1.AddView(textview);
}; };
API.HelyettesítésFrissítés().ContinueWith(t => API.HelyettesítésFrissítés().ContinueWith(t =>
{ { //TODO: Ezt ne itt, ne így
handler.Post(() => handler.Post(() =>
{ {
TaskHiba(t); 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; private TextView selected;
@ -157,6 +165,8 @@ namespace OrarendAndroidApp
handler.Post(() => bar.Visibility = ViewStates.Visible); handler.Post(() => bar.Visibility = ViewStates.Visible);
API.Frissítés().ContinueWith(t => //TODO: Megjelenítés frissítése 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); handler.Post(() => bar.Visibility = ViewStates.Gone);
}); });
break; break;

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="OrarendAndroidApp.OrarendAndroidApp" android:versionCode="1" android:versionName="1.0"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="OrarendAndroidApp.OrarendAndroidApp" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="16" /> <uses-sdk android:minSdkVersion="16" />
<application android:label="OrarendAndroidApp"></application> <application android:label="OrarendAndroidApp"></application>
</manifest> </manifest>